我有自己的游戏,玩家的射击工作正常,但那是因为我正在使用on.click事件和一些数学但现在我正试图让敌人回击我的玩家
我只是敌人,所以me.x
和me.y
是敌人的x和y。
p是播放器,因此p.x
和p.y
是播放器的x和y。
我们正尝试从me.x
和m.y
到p.x
和p.y
进行拍摄。
现在代码站立,它每隔一秒就会随机射击。
画布是500x500。
me.angle = Math.atan2(p.x, p.y) / Math.PI * 180;
me.fireBullet = function (angle) {
var b = Bullet(me.id, angle); //bullet id, with angle pack
b.x = me.x;
b.y = me.y;
}
setInterval(function () {
me.fireBullet(me.angle); //target angle attack
}
, 1000);
}
答案 0 :(得分:0)
tan(angle) = y / x | arctan()
angle = arctan(x / y)
现在我们只需要将矢量的x和y从玩家带到敌人:
angle = Math.atan( (me.x - p.x) / m(e.y - p.y)) || 0;
答案 1 :(得分:0)
修复是为了找到x和y之间的区别,但我现在正在努力工作。
var differenceX = p.x - me.x; //players x - targets x
var differenceY = p.y - me.y; //players y - targets y
me.angle = Math.atan2(differenceY, differenceX) / Math.PI * 180