在Flash CS6 AS3.0中创建游戏边界和障碍

时间:2014-04-01 20:24:05

标签: actionscript-3 flash collision-detection flash-cs6

我是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”。此外,我猜这是相关的,但是当英雄击中某个物体时,我怎么能让场景改变?非常感谢!

1 个答案:

答案 0 :(得分:0)

为if语句添加另一个条件,只允许代码在玩家的x / y低于/高于特定值时运行。

例如:      如果(Key.isDown(Key.UP)&& hero.y< 300)//屏障在y 300