*   >> Чтение Образование Статьи >> science >> programming

PushButton Учебник серии - Враги

новый CellCountDivider (); divider1.xCount = 2; IdleSpriteSheet.divider = divider1 <р> Единственное, стоит отметить, что спрайт лист враг имеет только 2 кадров анимации. По умолчанию каждый кадр анимации могут отображаться на экране в течение 50 миллисекунд, что делает Оценить анимации по умолчанию 20 кадров в секунду. Чтобы более низкой частотой кадров, мы должны назначить значение переменной AnimationControllerInfo maxFrameDelay.

Так как мы хотим, чтобы отобразить только 4 кадров в секунду, это значение должно быть 1000/4 = 250 миллисекунд

<предварительно> Переменная IdleAnimation: AnimationControllerInfo = новый AnimationControllerInfo ();. IdleAnimation.frameRate = 4; IdleAnimation.maxFrameDelay = 250; IdleAnimation.loop = TRUE; IdleAnimation.spriteSheet = IdleSpriteSheet; Animation.animations ["Idle"] = IdleAnimation; entity.addComponent (Анимация, "Анимация"); вернуться лица;} <р> Когда игрок сталкивается с врагом, мы хотим, чтобы это отскакивают.

Так же, как мы делали с платформами, компонент KeyboardController будет следить за столкновения с врагом в функции OnCollision. При обнаружении коллизии переменная recoilVector установлен в нормальный столкновения

 частные функции OnCollision (событие: CollisionEvent):. {Недействительными, если (ObjectTypeManager.instance.doesTypeOverlap (event.collidee.collisionType "платформы ")) {если (event.normal.y> 0,7) onGround ++; } Еще, если (ObjectTypeManager.instance.doesTypeOverlap (event.collidee.collisionType, "враг")) {recoilVector = event.

normal; }} <р> В функции OnTick мы проверяем, если переменная recoilVector был установлен на что-то. Если он имеет играем звуковой эффект, чтобы показать, что игрок не пострадал, а скорость игрока устанавливается в небольшом количестве вдоль отрицательной части recoilVector, который будет отражаться игрока от врага.

< PRE> общественная функция коррекции OnTick (тикрейтом: Number): пустота {//... если (! = NULL recoilVector) {если (! = NULL hurtSound) hurtSound.play (); velocity.x - = recoilVector.x * RecoilSpeed; velocity.y - = recoilVector.

y * RecoilSpeed; recoilVector = NULL; recoilDelay = RecoilDelay; } <р> Переменная recoilDelay затем обратный отсчет до нуля. Цель этого, чтобы остановить игрока от контроля с клавиатуры в течение короткого периода времени. Если мы этого не сделаем этого игрок может отскакивать врага с recoilVector, но потом двигаться прямо назад в противника благодаря скорости, применяемой в ответ на ввод с клавиатуры, поражение цели

Page   <<  [1] [2] [3] >>
Copyright © 2008 - 2016 Чтение Образование Статьи,https://ru.nmjjxx.com All rights reserved.