Como calibrar o acelerômetro para o seu jogo html5

Por padrão, o jogo acelerômetro HTML5 assume a posição neutra de perfeitamente horizontal - ou seja, o dispositivo está deitado sobre uma mesa. No entanto, estes são os dispositivos móveis, e os jogadores, muitas vezes, quer ter a posição neutra estar em outro lugar.

A técnica básica para calibrar controles de inclinação é manter o controle de um valor de deslocamento para MACHADO e AY. Quando o usuário escolhe para recalibrar, os valores de deslocamento são alteradas para fazer uma nova posição neutra. Aqui está o código relevante:

accel.html

De alguma forma você precisa para desencadear a calibração. Para este exemplo, você adicionar um botão básico de calibração. Veja como funciona:

  1. Adicionar offsetAX e offsetAY variáveis.

    Video: Ataria relancando jogos classicos em html5

    Estas duas variáveis ​​indicam a quantidade posição neutra do dispositivo é diferente do que a atitude padrão flat-on-the-table. Comece as variáveis ​​pelo valor zero.

  2. Adicionar um botão de calibração.



    Para este exemplo, o usuário pode recalibrar clicando em um botão.

  3. Verifique se há um toque de botão.

    A função foi criada para ler qualquer pressiona o botão.

  4. Se o botão for pressionado, obter valores novo offset.

    Quando o botão está ativo, encontrar a corrente MACHADO e AY valores solicitando-os a partir do Accel objeto.

  5. offsets subtrair machado e ay em cada quadro.

    Antes de quaisquer outros cálculos, subtrair o offsetAX a partir de MACHADO e offsetAY a partir de AY. Isso efetivamente definir a nova posição neutra para no entanto, o dispositivo foi ajustado a última vez que o botão foi clicado.

Apesar de um botão de calibração é muito fácil de implementar, por vezes, a calibração é feita automaticamente. Se você preferir, basta determinar offsetAX e offsetAY durante o nisso() função, ea atitude do dispositivo durante o nisso() função torna-se a atitude padrão. Isso não permite que o usuário para redefinir a calibração, mas ele não previne a congestionar a tela com um botão raramente usado.


Publicações relacionadas