*   >> Leitura Educação Artigos >> science >> programação

Criando um jogo de plataforma flash com Flixel e Flex - Powerup Blocks

this.y && Núcleo .last.y + Core.height if (contactFromLeft && Core.hitWall (this)) {Core.x = this.x - Core.width;} if (contactFromRight && Core.hitWall (this)) {Core.x = esta .x + this.width;} if (contactFromBottom && Core.hitCeiling (this)) {Core.y = this.y + This.Height; if (! cair) {bounceTime = BOUNCE_TIME; caiu = true; if (! dropFunction = null) dropFunction (this); }} If (contactFromTop && Core.hitFloor (this)) {Core.y = this.y - Core.height; }} Public override atualização function (): void {super.update (); se (bounceTime = -1!) {bounceTime - = FlxG.

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

Assim como o BounceBlock, a função de colisão foi substituído Aqui nós empurramos o jogador para fora do bloco, assim como o FlxBlock seria Nós também detectar quando o bloco foi atingida por baixo, caso em que iniciamos a saltar e chamar a função referenciada por dropFunction

 função protected override getScreenXY (P: Point):. void {super.getScreenXY (P); if (bounceTime! = -1) Py + = Math.sin (bounceTime /BOUNCE_TIME * * Math.

PI BOUNCE_COUNT) * BOUNCE_HEIGHT;}}

Os blocos de salto não deve afetar a forma como ele interage com objetos do jogo - ou seja, quando está saltando deve colidir como ele não está se movendo. A maneira mais fácil de fazer este bloco parecem saltar, mas não para alterar as variáveis ​​internas que afetam o código de colisão, é substituir a função getScreenXY. Esta função traduz a posição mundo objetos (x e y) em uma posição na tela. Aqui, se o bloco está saltando, nós ajustar o valor y por isso vai seguir uma onda senoidal, tornando-se parecem mover-se para cima e para baixo.

Desde que não tenha modificado a valores xey para o próprio bloco, ele ainda irá colidir como se não estavam se movendo

 powerupBlocks var protegidas:. FlxArray = new FlxArray (); 
 gamestate função pública () {//... powerupBlocks.add (this.add (novo PowerupBlock (dropCoin, LEVEL_DIMENSIONS >> 1, LEVEL_DIMENSIONS - BLOCK_DIMENSIONS * 4, BLOCK_DIMENSIONS, BLOCK_DIMENSIONS, PowerupBlockImage))); //...} 

O gamestate ganha uma nova FlxArray para segurar os blocos de energização.

Nós também adicionar um bloco de energização à essa coleção, da mesma maneira que nós acrescentar blocos estáticos. A única diferença é que nós passamos na nova função dropCoin ao PowerupBlcok, que será chamado quando o jogador salta para o bloco

 public override atualização function (): void {super.update ();. FlxG.collideArray (movingBlocks

Page   <<  [1] [2] [3] >>
Copyright © 2008 - 2016 Leitura Educação Artigos,https://artigos.nmjjxx.com All rights reserved.