2013-05-10 3 views
1

Я новичок в программировании игр и не очень хорош в Maths, я пытаюсь написать игру в стиле стрельбы 1945 года, все было хорошо до сих пор, но я нахожусь в горлышке бутылки, и я не могу понять, как сделать цель противника игрок.CraftyJS как вычислить вектор между двумя спрайтами?

Допустим, у меня есть спрайт и спрайт с плечом, как узнать угол и путь? Это звучит как вычисление вектора между 2 точками, я читал документацию и, в частности ссылке http://craftyjs.com/api/Crafty-math-Vector2D.html

Я просто не могу понять, как это сделать, я попытался следующий

var enemyV = Crafty.math.Vector2D(enemy.x, enemy.y); 
var playerV = Crafty.math.Vector2D(player.x, player.y); 
var angle = enemyV.angleTo(playerV); 

Значение угла всегда от -3 до 3, что совсем не похоже на правильные углы.

Я надеюсь, что кто-то, у кого есть опыт CraftyJS, может помочь мне здесь.

ответ

0

angleTo функция возвращает значение в радианах, поэтому запуск это даст фактического углу degreex Crafty.math.radToDeg(radianValue)

Направить игрок и сделать пулю путешествия в этом направлении вы просто получить разницу между 2 точками bullet.x - player.x' bullet.y - player.y»затем применить инкрементную скорость, например, как показано ниже (

bullet.x_diff = (target.x - bullet.x)*0.02; 
bullet.y_diff = (target.y - bullet.y)*0.02; 

затем внутри цикла enterframe:

this.x += this.x_diff; 
this.y += this.y_diff; 

Как только вы получите идею, вы должны нормализовать свой diff, разделив расстояние между точками.

Смежные вопросы