Saya membuat game Tower Defense, saya membuat program yang membuat proyektil mulai dari turret dan mengirimkannya ke musuh segera setelah dia berada dalam jangkauan tembaknya. Proyektil bergerak ke arah musuh tetapi pada arah tertentu proyektil kurang lebih cepat. Berikut kodenya:

//initialPosition is where the projectile is created. 
sf::Vector2f direction = enemyPosition - initialPosition;
projectile.move(direction.x * speed, direction.y * speed);

Apa yang saya lakukan salah?

0
Enchant3d 29 Mei 2020, 23:36

1 menjawab

Jawaban Terbaik

Saya menemukan solusinya, ini kodenya:

direction = enemyPosition - initialPosition;
ndir = direction / sqrt(pow(direction.x, 2) + pow(direction.y, 2));
velocity = ndir * speed;
pform.move(velocity);
0
Enchant3d 31 Mei 2020, 23:42