JUGAR LA DEMO
DESCARGAR EL CÓDIGO FUENTE
INDICE TUTORIAL
Hay dos limitaciones con el movimiento bloques en el último tutorial. La primera era que los bloques se deslice debajo del reproductor. Esto se puede solucionar fácilmente con una sola línea de código en la función de colisión MovingBlock
anula la función pública colisionar (Core: FlxCore):. Void {//.. si (contactFromTop) {if (Core.hitCeiling (esto )) {Core.y = this.y - Core.height; Core.last.y = Core.y; Core.x + = this.x - this.last.x; }}}
Aquí nos movemos el jugador horizontalmente por la misma cantidad que el bloque cuando el jugador ha colisionado con el bloque de arriba (es decir, que está de pie sobre ella).
La segunda limitación es que el jugador sería transportado a través de los bloques en situaciones en las que debería haber sido aplastado.
Para solucionar eso que necesitamos para llevar a cabo la detección de colisiones en la estática y bloques en movimiento individual
En primer lugar definimos una nueva FlxArray en la clase gamestate para mantener los bloques móviles
movingBlocks var protegidas..: FlxArray = new FlxArray ();Todas las instancias de la clase MovingBlock se colocan en la nueva matriz
this.movingBlocks.add (this.add (nueva MovingBlock (32, 64, 0, 0 , LEVEL_DIMENSIONS >> 1, LEVEL_DIMENSIONS - BLOCK_DIMENSIONS * 3, BLOCK_DIMENSIONS * 2, BLOCK_DIMENSIONS * 2, TechTilesImage)));
En la función de actualización que hacemos las colisiones en los bloques en movimiento, y luego los estáticos. Tenga en cuenta que el orden de las llamadas a la función FlxG collideArray son importantes: los bloques móviles tienen que ser procesados antes de que los bloques estáticos. Luego comprobamos si el jugador está incrustado en cualquiera de los bloques.
Si es que ha sido aplastado, y llamar a la función playerSquash
actualización de la función public override (): void {super.update ();. FlxG.collideArray (movingBlocks, jugador); FlxG.collideArray (levelBlocks, jugador); FlxG.collideArrays (playerBullets, levelBlocks); FlxG.collideArrays (enemigos, levelBlocks); FlxG.overlapArrays (playerBullets, enemigos, bulletHitEnemy); FlxG.overlapArray (movingBlocks, jugador, playerSquash); FlxG.overlapArray (levelBlocks, jugador, playerSquash); }En la función playerSquash simplemente matar al jugador.
Para un juego real es probable que quitar una vida jugadores y reinicie el estado en esta funció
Haciendo un juego 3D con Ogre - Apertura de una Window
- Datos Dictionary
- Php Array
- Desarrollo Ágil Process
- Mobile Launch Skypephone
- La manipulación de datos en Sybase
- La importancia de cyberspace
- Algunas características de C ++ Entities
- Lista Argumento normal en Php
- Nueva función de Adobe Flash CS4
- Aplicación de consola para llamar Evento usando System.Timers en C # 1.1 y 2.0 …
La construcción de su primera C…