|
|
|||||
Регистрация: Jul 2009
Адрес: C-Петербург
Сообщений: 37
|
перевод простой игры с AS2 на AS3
Я преподаю детям в компьютерном центре (дополнительное образование детей) курс
"Создание игр". Делали мы с ними простые игры на AS2. Но вот подумала я, что надо переходить на AS3. Попробовала перевести одну из игр- лабиринт на AS3 - ничего не получается. Вот фрагмент кода игры на AS2: stop(); moveSpeed = 5;// Скорость движения человечка _root.onEnterFrame = function() {// Внутри этой функции основной код игры //------- Управление клипом man с помощью клавиатуры--------------- if (Key.isDown(Key.RIGHT)) { man._x += moveSpeed; } else if (Key.isDown(Key.UP)) { man._y -= moveSpeed; } else if (Key.isDown(Key.DOWN)) { man._y += moveSpeed; } else if (Key.isDown(Key.LEFT)) { man._x -= moveSpeed; } }; Создала код управления человечком на AS3: (c помощью подсказок Фрагменты кода) stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_PressKeyToMove); function fl_PressKeyToMove(event:KeyboardEvent):void { switch (event.keyCode) { case Keyboard.UP: { man.y -= 5; break; } case Keyboard.DOWN: { man.y += 5; break; } case Keyboard.LEFT: { man.x -= 5; break; } case Keyboard.RIGHT: { man.x += 5; break; } } } Такое движение не подходит для игры. Нужно добавить обработку события смены кадров. Но как это сделать? Я пыталась, плавность в движении появляется - паузы при смене направлкния движения исчезают, но зато человечек почему-то двигается с ускорением- вообще бешено разгоняется. Вот код, т.е. попытка... stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_PressKeyToMove); function fl_PressKeyToMove(event:KeyboardEvent):void { switch (event.keyCode) { case Keyboard.UP : { stage.addEventListener(Event.ENTER_FRAME, enterFrameToMoveUp); function enterFrameToMoveUp(e:Event):void { kl.y -= 5; } stage.addEventListener(KeyboardEvent.KEY_UP,removeEnterFrameUp); function removeEnterFrameUp(e:KeyboardEvent):void { stage.removeEventListener(Event.ENTER_FRAME, enterFrameToMoveUp); } break; }; case Keyboard.DOWN : { stage.addEventListener(Event.ENTER_FRAME, enterFrameToMoveDown); function enterFrameToMoveDown(e:Event):void { kl.y += 5; } stage.addEventListener(KeyboardEvent.KEY_UP, removeEnterFrameDown); function removeEnterFrameDown(e:KeyboardEvent):void { stage.removeEventListener(Event.ENTER_FRAME, enterFrameToMoveDown); } break; }; case Keyboard.LEFT :// Здесь по старому, с паузами { kl.x -= 5; break; }; case Keyboard.RIGHT : { kl.x += 5; break; } } }; http:www.flashkursmt.narod.ru Последний раз редактировалось udaaff; 07.08.2010 в 21:47. |
Часовой пояс GMT +4, время: 04:39. |
|
« Предыдущая тема | Следующая тема » |
|
|