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

Creación de un juego de plataformas de Flash con Flixel y Flex - Arranque Blocks

this.y && Core .last.y + Core.height si (contactFromLeft && Core.hitWall (este)) {Core.x = this.x - Core.width;} if (contactFromRight && Core.hitWall (este)) {Core.x = esta .x + this.width;} if (contactFromBottom && Core.hitCeiling (este)) {Core.y = this.y + this.height; if (! caído) {bounceTime = BOUNCE_TIME; caído = true; if (! dropFunction = null) dropFunction (this); }} If (contactFromTop && Core.hitFloor (este)) {Core.y = this.y - Core.height; }} Public override actualización de la función (): void {super.update (); si (bounceTime = -1!) {bounceTime - = FlxG.

elapsed; si (bounceTime {bounceTime = -1;}..}}

Al igual que el BounceBlock, la función de la colisión se ha reemplazado Aquí empujamos el jugador fuera del bloque, al igual que el FlxBlock sería Nosotros también detectar cuando el bloque ha sido golpeado desde abajo, en cuyo caso iniciamos el rebote y llamamos a la función referenciada por dropFunction

 función de anulación protegida getScreenXY (P: Point):. void {super.getScreenXY (P), si (bounceTime! = -1) + Py = Math.sin (bounceTime /BOUNCE_TIME * Math.

PI * BOUNCE_COUNT) * BOUNCE_HEIGHT;}}

Los bloques de rebote no debe afectar la forma en que interactúa con los objetos del juego - es decir, cuando está rebotando debe colisionar como si no se está moviendo. La manera más fácil de hacer que este bloque parece rebotar, pero no para cambiar las variables internas que afectan el código de colisión, es reemplazar la función getScreenXY. Esta función se traduce la posición mundial objetos (X e Y) en una posición en la pantalla.

En este caso, si el bloque está rebotando, ajustamos el valor y lo que seguirá una onda sinusoidal, lo que parece moverse hacia arriba y hacia abajo. Puesto que no hemos modificado el valores x e y para el propio bloque, todavía chocará como si no se estuviera moviendo

 powerupBlocks var protegidas:. FlxArray = new FlxArray (); 
 Función gamestate público () {//... powerupBlocks.add (this.add (nueva PowerupBlock (dropCoin, LEVEL_DIMENSIONS >> 1, LEVEL_DIMENSIONS - BLOCK_DIMENSIONS * 4, BLOCK_DIMENSIONS, BLOCK_DIMENSIONS, PowerupBlockImage))); //...

}

El gamestate gana un nuevo FlxArray para mantener los bloques de arranque. También vamos a añadir un bloque de arranque a la esta colección casi de la misma manera que nosotros agregamos bloques estáticos. La única diferencia es que se pasa en la nueva función dropCoin al PowerupBlcok, que se llamará cuando

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