gpt4 book ai didi

javascript - CraftyJS如何计算2个 Sprite 之间的矢量?

转载 作者:行者123 更新时间:2023-11-28 09:09:43 24 4
gpt4 key购买 nike

我是游戏编程新手,数学不太好,我正在尝试编写一款 1945 风格的射击游戏,到目前为止一切都很好,但我遇到了瓶颈,我不知道如何让敌人瞄准在播放器处。

假设我有敌人 Sprite 和玩家 Sprite ,我如何找出 Angular 和路径?这听起来像是计算两点之间的向量,我一直在阅读文档,特别是这个链接 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);

Angular 值总是在-3到3之间,这看起来根本不是直 Angular 。

我希望有 CraftyJS 经验的人可以帮助我。

最佳答案

angleTo 函数返回弧度值,因此运行该函数将给出实际的 Angular 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;

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

关于javascript - CraftyJS如何计算2个 Sprite 之间的矢量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16477759/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com