我是AS3的新手,我正在尝试为Flash课程制作一个小游戏。我设置了场景,所以我的角色在场景中,我只需要它,所以每当他走路时,他都没有跑出屏幕或跑在他应该停下来的物体之上。所以我需要他在他碰到边缘时停下来,当他碰到某些物体时停下来,这些物体都在不同的层上并且是单独的电影剪辑。这是我到目前为止的代码。
stop();
hero.gotoAndStop('still');
var Key:KeyObject = new KeyObject(stage);
stage.addEventListener(Event.ENTER_FRAME,onenter);
function onenter(e:Event):void {
if(Key.isDown(Key.RIGHT)){
hero.x+=5;
hero.scaleX=.7;
hero.gotoAndStop('walking');
}else if(Key.isDown(Key.LEFT)){
hero.x-=5;
hero.scaleX=-.7;
hero.gotoAndStop('walking');
}else if(Key.isDown(Key.UP)){
hero.y-=5;
hero.gotoAndStop('walking');
}else if(Key.isDown(Key.DOWN)){
hero.y+=5;
hero.gotoAndStop('walking');
}else{
hero.gotoAndStop('still');
}
}
if(hero.x > rightBound){
GameScene.x += rightBound - player.x;
hero.x = rightBound;
}
有任何帮助吗?主要英雄的名字是“英雄”,它所在的场景叫做“GameScene”。此外,我猜这是相关的,但是当英雄击中某个物体时,我怎么能让场景改变?非常感谢!
答案 0 :(得分:0)
为if语句添加另一个条件,只允许代码在玩家的x / y低于/高于特定值时运行。
例如: 如果(Key.isDown(Key.UP)&& hero.y< 300)//屏障在y 300