Como criar o jogo de mármore-rolamento em seu jogo HTML5

Este tipo de jogo HTML5 é projetado especificamente para dispositivos móveis com um acelerômetro (embora ele funciona em um desktop). A ideia é a ponta do dispositivo para mover a bola para o gol azul sem bater qualquer um dos blocos. Cada vez que o usuário atinge o objetivo, o jogo é redesenhado com um bloco adicional, tornando o jogo mais difícil.

image0.jpg

Gerenciar dupla de entrada do seu jogo

Talvez a parte mais interessante deste jogo é o seu novo mecanismo de entrada. É uma sensação muito natural para inclinar a tela para o movimento bola.

  1. Criar um Accel objeto.

    Ligue o acelerômetro através da criação de uma instância do Accel objeto.

  2. Construir um checkAccel () método.

    Um método foi adicionado ao Bola objeto que verifica o acelerômetro.

  3. Obter a rotação acelerômetro.

    Use o getAX () e getAY () métodos para encontrar a quantidade de rotação em torno destes eixos.

  4. Converter a rotação dx e dy valores.

    Pode utilizar mecanismos para converter a rotação em movimento valores apropriados.

  5. Adicionar uma entrada de teclado opcional.

    É muito mais fácil para depurar um programa em um ambiente de trabalho do que em um dispositivo móvel, assim você pode adicionar uma opção de entrada alternativo para que você possa testar tanto do programa quanto possível antes de se mudar para a plataforma móvel. Use o Cena classe de palpável propriedade para determinar se você estiver usando um dispositivo móvel. Essa abordagem também torna o jogo jogável para uma ampla gama de usuários.

Aqui está o código (no principal atualizar() função) para a verificação de qual o tipo de entrada está disponível:

 // Obter a entrada de acelerômetro ou keyboardif (game.touchable) {ball.checkAccel () -} else {ball.checkKeys () -}

E aqui está a checkAccel () método do Bola objeto:

 tBall.checkAccel = function () {// usar o acelerômetro para obter inputnewDX = accel.getAY () - newDY = accel.getAX () - newDX * = -5-newDY * = -5-ball.setDX (newDX) - ball.setDY (newDY) -} // fim checkAccel

Como construir obstáculos jogo

Outra característica interessante deste jogo é o crescente nível de dificuldade. Obtendo o nível de dificuldade de um jogo correto é muito desafiador. Você quer que o jogo seja superável, mas vencer o jogo precisa para se sentir como uma realização. Uma maneira de alcançar este objetivo é começar com um nível muito fácil de dificuldade e, em seguida, rampa acima até que o jogo se torna mais difícil.

Para o jogo de mármore, use um conjunto de blocos como o obstáculo. Quando o jogo começa, há apenas dez blocos na tela, por isso é muito fácil de chegar à meta sem bater nos blocos. Cada vez que o jogador atinge o alvo, cena do jogo é redesenhado com mais um bloco.

Os blocos eo objetivo são desenhados em posições aleatórias na tela. No entanto, você precisa ter cuidado para não criar uma situação impossível. o Quadra o objetivo de reiniciar() método tenta colocar um bloco em uma posição aleatória na tela.

No entanto, se o bloco colide com o gol, o jogo vai ser difícil de vencer. Da mesma forma, se o bloco colide com a posição atual da bola, o jogador perderá imediatamente. Se qualquer uma destas condições ocorrer, o bloco é redesenhada até que uma posição jurídica está disponível.

Os blocos se sobrepor uns aos outros livremente, mas você pode adicionar essa restrição também. Aqui está o bloco de redefinir rotina:

 tBlock.reset = function () {// não me deixe se sobrepõem a meta ou ballkeepGoing = true-while (keepGoing) {newX = Math.random () * this.cWidth-newY = Math.random () * isso. cHeight-this.setPosition (newX, newY) -keepGoing = false-se (this.collidesWith (meta)) {keepGoing = verdade-} // fim do IFIF (this.distanceTo (bola) lt; 150) {keepGoing = verdade- } // end if} // fim do while} // reinicialização final

Como melhorar o jogo de mármore

O jogo de mármore é bastante jogável como ele é, mas qualquer jogo pode ser melhorado. Aqui estão algumas sugestões:

  • Adicionar um limite de tempo. Exigir que o usuário para atingir a meta em um determinado momento.

  • Adicionar novos tipos de barreiras. Barreiras de diferentes tamanhos vai mudar o jogo.

  • Alterar ação do limite da bola. Nesta versão do jogo, a bola envolve em torno da tela. Isso adiciona um elemento tático adicional para o jogo, mas você pode preferir parar na fronteira.

  • Adicionar powerups. Você sempre pode adicionar elementos especiais que mudam temporariamente o jogo. Talvez considere fazer a bola invencível por alguns segundos, ou invertendo a gravidade (multiplicar dx e dy tanto por -1). Você também pode alterar temporariamente o tamanho da bola ou ter um powerup que redefine o nível atual.

  • Criar blocos em movimento. O jogo muda por completo, se os blocos também se movem. Você provavelmente quer que eles se movem muito lentamente em uma direção aleatória, porque esse recurso poderia tornar o jogo muito mais difícil.

  • Fazer melhorias cosméticas. Claro, você sempre pode adicionar efeitos sonoros, um mecanismo de alta pontuação, e gráficos melhorados.

menu