Создание игровых границ и барьеров во Flash CS6 AS3.0

Я новичок в 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;
}

Любая помощь? Главного героя зовут «hero», а сцена, в которой он находится, называется «GameScene». Кроме того, я думаю, это связано, но как мне изменить сцену, когда герой ударяет по определенному объекту? Большое спасибо!


person user3486746    schedule 01.04.2014    source источник


Ответы (1)


добавьте еще одно условие в операторы if, которое позволяет выполнять код только в том случае, если x/y игрока ниже/выше определенного значения.

пример: if(Key.isDown(Key.UP)&&hero.y‹300)//барьер находится на y 300

person ModDL    schedule 04.04.2014