JUGAR LA DEMO
DESCARGAR EL CÓDIGO FUENTE
VOLVER A EL INDICE TUTORIAL
En el último tutorial hemos añadido un componente para permitir que las entidades a ser destruidos en caso de colisión. Esto pasa por alto la HealthComponent utilizado por las entidades enemigas, pero ahora llegamos al punto de partida y añadir un HealthComponent al jugador para que pueda ser dañado por las balas enemigas. Aquí añadimos el HealthComponent, y especificar que el juego tiene una salud inicial de 5.
Código
Para el jugador que se rodará tenemos que crear una nueva plantilla de entidad. Esto es casi una copia exacta de la plantilla EnemyBullet, excepto los tipo tipos entidad y de colisión se cambian para identificarlo como una bala disparada por un enemigo y chocar con el jugador
.
Código
EnemyControllerComponent .as
Al igual que el PlayerControllerComponent, lo que crea una nueva entidad PlayerBullet cuando la barra de espacio ha sido presionado, el EnemyControllerComponent creará aleatoriamente una nueva entidad EnemyBullet.
La variable timeToNextShot, utilizado para el control la cantidad de tiempo entre cada posible disparo de una bala, se cuenta a 0.
función de anulación pública onTick (tickrate: Number): void {//... timeToNextShot - = tickrate; timeToNextShot = timeToNextShotUna vez timeToNextShot llega a 0 el enemigo tendrá la oportunidad de disparar una bala. El timeToNextShot se restablece para iniciar la cuenta atrás de nuevo
si (timeToNextShot == 0) {timeToNextShot = timeBetweenShots;.
Queremos que estas vacunas sean al azar, por lo que utilizamos la variable chanceOfShot con la función aleatoria para determinar si se debe tomar un tiro. La siguiente sentencia if tiene un 1 en chanceOfShot oportunidad de ser cierto.
si (Math.round (Math.random () * chanceOfShot) == 0) {En caso de que la sentencia if ser verdad una nueva se crea instancia de la plantilla EnemyBullet, coloca y ajusta la velocidad
bala var:. IEntity = TemplateManager.instance.instantiateEntity (bulletEntityName); si (bala! = null) {var espacial: Box2DSpatialComponent = bullet.lookupComponentByType (Box2DSpatialComponent) como Box2DSpatialComponent; spatial.position = new Point (position.x, position.y); spatial.linearVelocity = new Point (0, bulletSpeed); }}}}
Tenemos que hacer un pequeño cambio en el PlayerControllerComponent para detener las balas enemigas g
Hacer un clon de Space Invaders con PushButton - Antiguo Menu
- Php Comparación Y Aritmética Operators
- Java Variables
- Los componentes conectados mediante Opencv
- Puntero a operadores miembros en C ++
- Datos identificativos artículos y Entities
- Espacio en blanco en Java
- Guía de principiantes para c ++
- Javascript Object Basics
- Javascript Outputs
- Windows Presentation Foundation (WPF)
net