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
Exemplo 2 - Array [i]matches[/i](Não sei como se chama isso xD)
Qual seria mais performático?
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
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)