<р> скачать Исходный код
<р> вернуться на главную учебник
<р> В прошлом уроке мы создали AnimationController автоматически обновлять изображение, показанное на SpriteRenderComponent, в результате чего анимированное изображение. Теперь мы расширим компонент KeyboardController, чтобы позволить ему сигнал AnimationController, чтобы изменить текущую анимацию, которая позволит нам, чтобы показать различные анимации на основе ввода с клавиатуры, как работает анимации при нажатии на клавишу со стрелкой.
<Р > The AnimationController требует две вещи, чтобы быть в состоянии поменять анимацию по требованию. Во-первых, название события, которые будут Отправляется, когда анимация должна быть изменена. Это устанавливается с помощью свойства changeAnimationEvent
<р> EntityFactory.as
Animation.changeAnimationEvent = "PlayerAnimation". <р> Во-вторых, ссылка на свойства, описывающего имя анимации, которые должны играть. Эта функция получает что мы добавим к компоненту KeyboardController
Animation.currentAnimationReference = новый PropertyReference ("@ Input.currentAnimation"). <р> Что происходит сейчас в том, что, когда анимация отображается нужно изменить событие отправляется объектом, в данном случае с именем "PlayerAnimation". Там нет данных, связанный с этим событием:. AnimationController будет использовать запуск события как сигнал, чтобы запросить анимации, которые должны отображаться через ссылку имущества, закрепленного имущества changeAnimationEvent
<р> диспетчеризации "PlayerAnimation" событий и обеспечивая имя нужного анимации работа в KeyboardController.
Функция currentAnimation обеспечивает путь для AnimationController читать имя текущей анимации
<р> KeyboardController.as
общественная функция получите currentAnimation ():. Последовательность {обратный анимации;}Функция OnTick обновляется, чтобы записать последнее направление игрока (с лицевой переменной), будь то движется или нет (в режиме ожидания переменной), и направить событие, когда анимация должна быть изменена.
Функция общественного переопределение OnTick (тикрейтом: Number): пустота {вар положение: Точка = owner.getProperty (PositionReference); если (InputManager.isKeyDown (InputKey.RIGHT)) {если (лицом || холостом ходу!) {видом = TRUE; простоя = ложь; анимация = "RunRight"; owner.eventDispatcher.dispatchEvent (новое событие (AnimationEventName)); } XMovement + = скорость * тикрейтом; в то время как (xMovement> = 1) {position.x + = 1; xMovement - = 1; }} Еще, если (InputManager.isKeyDown (InputKey.LEFT)) {если (лицом || холостом ходу) {видом = ложь; простоя = ложь; анимация = "RunLeft"; owner.eventDispatcher.
dispatchEvent (новое событие (AnimationEventName)); } XMovement - = скорость * тикрейтом; в то время как (xMovement еще, если (в режиме ожидания) {простоя = TRUE; анимация = сталкивается "IdleRight": "IdleLeft"; owner.eventDispatcher.dispatchEvent (новое событие (AnimationEventName));}! если (InputManager.isKeyDown (InputKey.DOWN) ) {yMovement + = скорость * тикрейтом, в то время (yMovement>
PushButton Учебник серии - Отслеживание и усилитель; Amp; Jumping
- Освойте Java Programming
- Передача параметров процедуры в Mysql
- Думая Cookies
- Mysql резервного копирования Basics
- PushButton Учебник серии - Обновление Animation
- Основные Весна Transactions
- ActivePerl Базовый синтаксис
- Примеры программ Java - Легкий способ Java
- Управление сетью безопасности для крупных г…
- Как: Остановить программу из проверки обнов…