Método mais rápido: If statements vs array matches

18/03/2020

0

Olá galera!
Não sei se o título do tópico ficou claro, desculpe por isso.

No meu jogo tenho uma função(playerDir()) que me retorna os seguintes valores que correspondem a direção para qual o jogador está olhando:

2 = Baixo
4 = Esquerda
6 = Direita
8 = Cima

Também possuo um objeto que me retorna o valor atual, em coordenadas x e y, de onde o player se encontra.
player._realX = retorna um número.
player._realY = retorna um número.

Conforme o jogador executa uma ação, gostaria que a posição(player._realX ou player._realY) fosse alterada.

A minha dúvida é quanto a performance do método que estou usando para que isso aconteça.

Exemplo 1 - If statements

if(playerDir() === 2) player._realY += 0.5;
if(playerDir() === 4) player._realX += -0.5;
if(playerDir() === 6) player._realX += 0.5;
if(playerDir() === 8) player._realY += -0.5;


Exemplo 2 - Array [i]matches[/i](Não sei como se chama isso xD)

let offsetX = [0, 0, 0, 0, -0.5, 0, 0.5, 0, 0];
let offsetY = [0, 0, 0.5, 0, 0, 0, 0, 0, -0.5];
player._realX += (offsetX[playerDir()])
player._realY += (offsetY[playerDir()])


Qual seria mais performático?
Eliaquim Nascimento

Eliaquim Nascimento

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar