Пятница, 03 Мая 2024, 22:06

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Adobe Flash и Создание флэш-игр » Анимация движения в платформере.
Анимация движения в платформере.
RestonДата: Среда, 10 Апреля 2013, 17:13 | Сообщение # 1
был не раз
Сейчас нет на сайте
Помогите пожалуйста! Как сделать так, чтобы при нажимании стрелки (движения персонажа) начала проигрываться анимация движения. Я использую такой код:
Код
var leftKeyDown:Boolean = false;
var upKeyDown:Boolean = false;
var rightKeyDown:Boolean = false;
var downKeyDown:Boolean = false;

var mainSpeed:Number = 7;

Man.addEventListener(Event.ENTER_FRAME, moveChar);
function moveChar(event:Event):void
{
  if (leftKeyDown)
  {
   Man.x -=  mainSpeed;
   Man.gotoAndPlay(3);   //переключение на анимацию движения влево
  }
  if (rightKeyDown)
  {
   Man.x +=  mainSpeed;
   Man.gotoAndPlay(2);    //переключение на анимацию движения вправо
  }
   
}

stage.addEventListener(KeyboardEvent.KEY_DOWN, checkKeysDown);
function checkKeysDown(event:KeyboardEvent):void
{
   
  if (event.keyCode == 37 || event.keyCode == 65)
  {
   leftKeyDown = true;
  }
   
  if (event.keyCode == 39 || event.keyCode == 68)
  {
   rightKeyDown = true;
  }
   
}
stage.addEventListener(KeyboardEvent.KEY_UP, checkKeysUp);
function checkKeysUp(event:KeyboardEvent):void
{
   
  if (event.keyCode == 37 || event.keyCode == 65)
  {
   leftKeyDown = false;
   Man.gotoAndPlay(1);    //переключение на анимацию стояния на месте
  }
   
  if (event.keyCode == 39 || event.keyCode == 68)
  {
   rightKeyDown = false;
   Man.gotoAndPlay(1);
  }
}

Проблема заключается в том, что когда зажимаешь кнопку движения, анимация останавливается на первом кадре и не проигрывается дальше. Поправьте код пожалуйста.
coderДата: Среда, 10 Апреля 2013, 19:28 | Сообщение # 2
частый гость
Сейчас нет на сайте
Анимация движения клипа Man состоит из одного кадра?!
Код
function moveChar(event:Event):void
{
   if (leftKeyDown)
   {
    Man.x -=  mainSpeed;
    Man.gotoAndPlay(3);   //переключение на анимацию движения влево
   }
   if (rightKeyDown)
   {
    Man.x +=  mainSpeed;
    Man.gotoAndPlay(2);    //переключение на анимацию движения вправо
   }
     
}

Есть код в кадрах клипа Man? Сколько у него вообще кадров на временной шкале?
RestonДата: Четверг, 11 Апреля 2013, 14:07 | Сообщение # 3
был не раз
Сейчас нет на сайте
Цитата (coder)
Анимация движения клипа Man состоит из одного кадра?!
Код
function moveChar(event:Event):void
{
   if (leftKeyDown)
   {
    Man.x -=  mainSpeed;
    Man.gotoAndPlay(3);   //переключение на анимацию движения влево
   }
   if (rightKeyDown)
   {
    Man.x +=  mainSpeed;
    Man.gotoAndPlay(2);    //переключение на анимацию движения вправо
   }
     
}

Есть код в кадрах клипа Man? Сколько у него вообще кадров на временной шкале?

В клипе Man 4 кадра - анимации стояния не месте, движения вправо/влево и прыжка, и в каждом прописано stop();. В каждой анимации тоже по несколько кадров (анимация движения ног например).
coderДата: Пятница, 12 Апреля 2013, 07:34 | Сообщение # 4
частый гость
Сейчас нет на сайте
Я так понимаю, в кадры клипа Man вставлены другие клипы со своими собственными временными шкалами? Тогда нужно обращаться к ним: что-то вроде Man.AnimationMoveRight.gotoAndPlay(). Если хочешь, выложи где-нибудь свой проект, я посмотрю и попробую отладить его.
RestonДата: Пятница, 12 Апреля 2013, 13:58 | Сообщение # 5
был не раз
Сейчас нет на сайте
Цитата (coder)
Если хочешь, выложи где-нибудь свой проект, я посмотрю и попробую отладить его.

Вот:проект. Заранее спасибо!
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Adobe Flash и Создание флэш-игр » Анимация движения в платформере.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг