2013-05-10 45 views
1

我是游戏编程的noob,并不擅长数学,我想写一个1945年的风格的射击游戏,迄今为止都很好,但我在瓶颈,我不知道如何使敌人瞄准玩家。CraftyJS如何计算2个精灵之间的向量?

可以说我有敌方精灵和玩家精灵,我如何找出角度和路径?这听起来像计算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; 

一旦你明白了,你应该通过除以点之间的距离来标准化你的差异。

相关问题