我正在使用as3创建Flash android游戏。我已经在平台上进行了对象跳跃,但是我在垂直跟踪对象时遇到了问题。任何如何改进代码的帮助或建议都非常欢迎!
对象实例名称为 hero
,所有平台都制作为一个实例名称为 level
的影片剪辑
这是我的代码:
import flash.events.Event;
var Key:KeyObject = new KeyObject(stage);
var dy:Number=10;
var gravity:Number=1;
var canjump:Boolean = false;
stage.addEventListener(Event.ENTER_FRAME,onenter);
function onenter(e:Event) :void {
if (Key.isDown(Key.LEFT)) {
hero.x-=30;
hero.y-=10;
}
if (Key.isDown(Key.RIGHT)) {
hero.x+=30;
hero.y-=20;
}
dy+=gravity;
if (! level.hitTestPoint(hero.x,hero.y,true)) { //if the hero not hitting the platform
hero.y+=dy;
}
if (dy>10) { //controls gravity
dy=10;
}
for (var i:int = 0; i<10; i++) {
if (level.hitTestPoint (hero.x,hero.y,true)) {
hero.y--;
dy=0;
canjump=false;
}
}
}
我不太确定它是否适用于 android,但在我为其他平台游戏编写的代码上,我使用了脚本
this.y=-hero.y+(stage.stageWidth/2);
这跟随角色上升,至少在 SWF 文件中; 希望它有帮助!