jogar o demo
BAIXAR O CÓDIGO FONTE
TUTORIAL INDEX
Há duas limitações com os blocos que se deslocam no último tutorial. A primeira era que os blocos que deslizam debaixo do jogador. Isso pode ser facilmente corrigido com uma linha de código na função de colisão MovingBlock
substituir a função pública colidem (Núcleo: FlxCore):. Void {//.. if (contactFromTop) {if (Core.hitCeiling (isto )) {Core.y = this.y - Core.height; Core.last.y = Core.y; Core.x + = this.x - this.last.x; }}}
Aqui nós mover o aparelho horizontalmente pelo mesmo valor do bloco quando o jogador tenha colidido com o bloco de cima (ou seja, está de pé sobre ela).
A segunda limitação foi que a ser transportado jogador iria através dos blocos em situações em que deveria ter sido esmagados. Para consertar isso, precisamos realizar a detecção de colisão na estática e em movimento blocos individualmente
Primeiro vamos definir uma nova FlxArray na classe gamestate para manter os blocos em movimento
movingBlocks var protegidas..: FlxArray = new FlxArray ();
Todas as instâncias da classe MovingBlock são então colocados na nova matriz
this.movingBlocks.add (this.add (novo MovingBlock (32, 64, 0, 0 , LEVEL_DIMENSIONS >> 1, LEVEL_DIMENSIONS - BLOCK_DIMENSIONS * 3, BLOCK_DIMENSIONS * 2, BLOCK_DIMENSIONS * 2, TechTilesImage)));Na função de atualização que fazemos colisões nos blocos que se deslocam, e, em seguida, as estáticas. Note que a ordem das chamadas para a função FlxG collideArray são importantes: os blocos móveis têm de ser processadas antes de os blocos estáticos.
Em seguida, verifica para ver se o jogador está incorporado em qualquer um dos blocos. Se é que foi esmagado, e chamamos a função playerSquash
public override atualização function (): void {super.update ();. FlxG.collideArray (movingBlocks, leitor); FlxG.collideArray (levelBlocks, leitor); FlxG.collideArrays (playerBullets, levelBlocks); FlxG.collideArrays (inimigos, levelBlocks); FlxG.overlapArrays (playerBullets, inimigos, bulletHitEnemy); FlxG.overlapArray (movingBlocks, jogador, playerSquash); FlxG.overlapArray (levelBlocks, jogador, playerSquash); }
Na função playerSquash nós simplesmente matar o jogador. Para um jogo real, você provavelmente tiraria uma vida jogadores e reinicie o estado nesta função
playerSquash função privada (Collide1: FlxCore, Collide2: FlxCore):. Void {player.kill ();}
Fazendo um jogo 3D com Ogre - Abrindo uma janela
- Implementação da Magia Html Cliente Edges
- Usando expressões regulares em Perl
- Tema Gerador Wordpress - a maneira fácil de criar um Wordpress Theme
- iPhone Core Data Tutorial Parte 2
- Usando Javascript seqüência regular Expressions
- Janela Procedimento Basics
- C ++ Character Handling
- Noções básicas de Php Variables
- Operadores aritméticos em PHP
- A lógica booleana Para C