Actionscript 3 为什么我的应用程序在android设备上发布和运行时会有所不同?
我使用AdobeCS5.5和as3编写了一个平台游戏。 当我在pc上测试我的应用程序时,游戏运行得非常完美,但当我 发布并运行到我的android设备我有一些重力问题。 有时当我落地时,整个舞台都开始颤抖。 奇怪的是,在同一层同一个场地上,有时舞台开始了 颤抖,有时不颤抖。 这是我的代码中的问题还是其他问题? 我使用800w x 480h的舞台。 我使用GPU模式发布。 我把里面的土地都画成了形状Actionscript 3 为什么我的应用程序在android设备上发布和运行时会有所不同?,actionscript-3,Actionscript 3,我使用AdobeCS5.5和as3编写了一个平台游戏。 当我在pc上测试我的应用程序时,游戏运行得非常完美,但当我 发布并运行到我的android设备我有一些重力问题。 有时当我落地时,整个舞台都开始颤抖。 奇怪的是,在同一层同一个场地上,有时舞台开始了 颤抖,有时不颤抖。 这是我的代码中的问题还是其他问题? 我使用800w x 480h的舞台。 我使用GPU模式发布。 我把里面的土地都画成了形状 var xvel = 0; var yvel = 0; var GRA = 1; var FRIC
var xvel = 0;
var yvel = 0;
var GRA = 1;
var FRICT = 0.85;
var downarr = new Array(-12,0,12);
var vertarr = new Array(-20,-30);
var uparr = new Array(-3,0,3);
this.addEventListener(Event.ENTER_FRAME,FramesEvents);
function windowcamera()
{
var newx = - savvito.x + 350;
var distx = newx - bg.x;
bg.x += distx;
var newy = - savvito.y + 370;
var disty = newy - bg.y;
bg.y += disty;
}
function phys()
{
savvito.x += xvel;
savvito.y += yvel;
xvel *= FRICT;
yvel += GRA;
if (yvel > 8)
{
yvel = 8;
}
if (yvel > 2)
{
onground = false;
}
savvito.virtx = savvito.x + bg.x;
savvito.virty = savvito.y + bg.y;
downPush(savvito);
leftPush(savvito);
rightPush(savvito);
upPushCloud(savvito);
upPush(savvito);
}
function runJump()
{
onground = false;
yvel = - 12;
}
function downPush(d)
{
d.virtx = d.x + bg.x;
d.virty = d.y + bg.y;
for (var i = 0; i < uparr.length; i++)
{
var num = uparr[i];
var tx = d.virtx + num;
var ty = d.virty - 40;
while (bg.ground.hitTestPoint(tx , ty , true))
{
d.virty++;
ty++;
d.y++;
yvel = 1;
}
for (var ie=0; ie<boxingArr.length; ie++)
{
var e = boxingArr[ie];
if (e.liftthisbox == 0)
{
while (e.hitTestPoint(tx , ty , true))
{
e.y--;
e.yvel = 0;
}
}
}
}
}
function rightPush(d)
{
d.virtx = d.x + bg.x + xvel;
d.virty = d.y + bg.y;
for (var i = 0; i < vertarr.length; i++)
{
var num = vertarr[i];
var tx = d.virtx + 15;
var ty = d.virty + num;
while (bg.ground.hitTestPoint(tx , ty , true))
{
d.virtx--;
tx--;
d.x--;
xvel = 0;
}
for (var ie=0; ie<boxingArr.length; ie++)
{
var e = boxingArr[ie];
if (e.liftthisbox == 0)
{
while (e.hitTestPoint(tx , ty , true))
{
d.virtx--;
tx--;
d.x--;
xvel = 0;
}
}
}
}
}
function leftPush(d)
{
d.virtx = d.x + bg.x + xvel;
d.virty = d.y + bg.y;
for (var i = 0; i < vertarr.length; i++)
{
var num = vertarr[i];
var tx = d.virtx - 15;
var ty = d.virty + num;
while (bg.ground.hitTestPoint(tx , ty , true))
{
d.virtx++;
tx++;
d.x++;
xvel = 0;
}
for (var ie=0; ie<boxingArr.length; ie++)
{
var e = boxingArr[ie];
if (e.liftthisbox == 0)
{
while (e.hitTestPoint(tx , ty , true))
{
d.virtx++;
tx++;
d.x++;
xvel = 0;
}
}
}
}
}
function upPushCloud(d)
{
if (yvel > 0)
{
d.virtx = d.x + bg.x;
d.virty = d.y + bg.y;
for (var i = 0; i < downarr.length; i++)
{
var num = downarr[i];
var tx = d.virtx + num;
var ty = d.virty;
while (bg.cloudbg.hitTestPoint(tx , ty , true))
{
onground = true;
jdown = false;
d.virty--;
ty--;
d.y--;
yvel = 0;
}
}
}
}
function upPush(d)
{
d.virtx = d.x + bg.x;
d.virty = d.y + bg.y;
for (var i = 0; i < downarr.length; i++)
{
var num = downarr[i];
var tx = d.virtx + num;
var ty = d.virty;
while (bg.ground.hitTestPoint(tx , ty , true))
{
onground = true;
jdown = false;
d.virty--;
ty--;
d.y--;
yvel = 0;
}
for (var ie=0; ie<boxingArr.length; ie++)
{
var e = boxingArr[ie];
while (e.hitTestPoint(tx , ty , true))
{
onground = true;
jdown = false;
d.virty--;
ty--;
d.y--;
yvel = 0;
}
}
}
}
function FramesEvents(e:Event)
{
phys();
controls();
windowcamera();
}
var xvel=0;
var-yvel=0;
var-GRA=1;
var-FRICT=0.85;
var downarr=新数组(-12,0,12);
var vertarr=新阵列(-20,-30);
var uparr=新数组(-3,0,3);
this.addEventListener(Event.ENTER_FRAME,FramesEvents);
函数windowcamera()
{
var newx=-savvito.x+350;
var distx=newx-bg.x;
bg.x+=distx;
var newy=-savvito.y+370;
var disty=新y-bg.y;
bg.y+=disty;
}
函数phys()
{
savvito.x+=xvel;
savvito.y+=yvel;
xvel*=摩擦;
yvel+=GRA;
如果(yvel>8)
{
yvel=8;
}
如果(yvel>2)
{
onground=假;
}
savvito.virtx=savvito.x+bg.x;
savvito.virty=savvito.y+bg.y;
下推(萨维托);
左推(萨维托);
右推(萨维托);
乌普斯库德(萨维托);
乌普什(萨维托);
}
函数runJump()
{
onground=假;
yvel=-12;
}
功能下推(d)
{
d、 virtx=d.x+bg.x;
d、 男性=d.y+bg.y;
对于(变量i=0;i 对于(var ie=0;要使用Flash/AS3创建性能高效的移动应用程序,您需要使用支持GPU的框架,如Gamua Starling()。仅在发布设置中的某个位置设置GPU模式不会改变Flash通常使用CPU渲染所有内容的事实。是的,一旦重画区域足够大,Flash就会遇到性能问题并大幅降低FPS。感谢您的回答。因此,如果我下载starling并将其放入代码中,我必须更改所有代码或p我的代码艺术?可能是所有代码。Starling(可能是任何支持GPU的库)不适用于常规Flash内容,它适用于纹理、地图集、网格、四边形和所有其他3D相关内容。您需要以某种方式准备所有图形,以便Starling能够使用。好的,Organi。非常感谢您的回答!