Tarde pra todos.
Finalmente teste seu código, Cataclysm.
Cataclysm185 escreveu:
Código: Selecionar todos
angulo = arctan2(xAlvo, yAlvo); //passo 1
velocidadeX = sin(degtorad(angulo)); //passo 2
velocidadeY = cos(degtorad(angulo)); //passo 3
Do jeito q vc colocou não deu certo, mas eu fui adaptando como dava (como disse, matemática não é meu forte, mas sou bom com lógica). Troquei o calculo com radiano para grau e funcionou. Então cheguei nessa solução:
Código: Selecionar todos
if( pointDistance > 32 ){
var pointDirection = point_direction(xdistPlayer, ydistPlayer, xdistTower, ydistTower);
// calculo de como ir até o ponto
var velocidadeX = sin(pointDirection) * 2; //passo 1
var velocidadeY = cos(pointDirection) * 2; //passo 2
xdistPlayer += velocidadeX;
ydistPlayer += velocidadeY;
scr_dataPlayers("SET", vgGame.etapa_player, "xposition", xdistPlayer);
scr_dataPlayers("SET", vgGame.etapa_player, "yposition", ydistPlayer);
}else{
xdistPlayer = xdistTower;
ydistPlayer = ydistTower;
scr_dataPlayers("SET", vgGame.etapa_player, "xposition", xdistPlayer);
scr_dataPlayers("SET", vgGame.etapa_player, "yposition", ydistPlayer);
playerAction = 4;
}
Valeu, man. Não teria chegado nesse código sem tua ajuda! Fica de referência para os outros.
![:sorrir:](./images/smilies/nyu/897726.gif)