*   >> Lectura Educación Artículos >> science >> programación

PushButton Tutorial Series - Enemies

geFilename = "../media/enemy.png"; var divider1: CellCountDivider = new CellCountDivider (); divider1.xCount = 2; IdleSpriteSheet.divider = divider1;

La única cosa a destacar es que la hoja de sprites enemigo tiene sólo 2 fotogramas de animación. Por defecto cada fotograma de la animación se puede visualizar en la pantalla durante 50 milisegundos, lo que la tasa de animación por defecto de 20 fotogramas por segundo. Para permitir una velocidad de fotogramas más lenta que tenemos que asignar un valor a la variable AnimationControllerInfo maxFrameDelay.

Como queremos mostrar sólo 4 fotogramas por segundo, este valor debe ser 1000/4 = 250 milisegundos

 IdleAnimation var: AnimationControllerInfo = new AnimationControllerInfo ();. IdleAnimation.frameRate = 4; IdleAnimation.maxFrameDelay = 250; IdleAnimation.loop = true; IdleAnimation.spriteSheet = IdleSpriteSheet; Animation.animations ["Idle"] = IdleAnimation; entity.addComponent (Animación, "Animación"); volver entidad;} 

Cuando el jugador choca con un enemigo que queremos que rebotan.

Al igual que hicimos con las plataformas, el componente KeyboardController velará por una colisión con un enemigo en la función OnCollision. Cuando se detecta una colisión la variable recoilVector se establece en la normal de la colisión

 función OnCollision privada (event: CollisionEvent):. Void {if (ObjectTypeManager.instance.doesTypeOverlap (event.collidee.collisionType, "Plataforma ")) {if (event.normal.y> 0,7) onground ++; } Else if (ObjectTypeManager.instance.doesTypeOverlap (event.collidee.collisionType, "Enemigo")) {recoilVector = event.

normal; }}

En la función onTick comprobamos para ver si la variable recoilVector se ha establecido en algo. Si tiene que jugar un efecto de sonido para mostrar que el jugador ha sido herido, y la velocidad del jugador se establece en una pequeña cantidad por la negativa de la recoilVector, que se recuperará el jugador lejos del enemigo.

< pre> función de anulación pública onTick (tickrate: Number): void {//... if (! recoilVector = null) {if (! hurtSound = null) hurtSound.play (); velocity.x - = recoilVector.x * RecoilSpeed; velocity.y - = recoilVector.

y * RecoilSpeed; recoilVector = null; recoilDelay = RecoilDelay; }

La variable recoilDelay es entonces la cuenta regresiva a cero. El propósito de esto es para detener el reproductor de ser controlado con el teclado por un corto período de tiempo. Si no hacemos esto, el jugador podría rebotar a un enem

Page   <<  [1] [2] [3] >>
Copyright © 2008 - 2016 Lectura Educación Artículos,https://lectura.nmjjxx.com All rights reserved.