0

我很难弄清楚如何在 8 个方向中的 1 个方向上射击子弹。

玩家只能指向罗盘方向 0、45、90、135、180 等。

所以我需要一个公式,我可以在 spawnEntity 中使用它以恒定的速度向玩家面对的方向发射子弹。

我试过这个;

    sinAngle = Math.cos(90) * 1000;
    cosAngle = Math.sin(90) * 1000;

    bulletX = (this.pos.x);
    bulletY = (this.pos.y);
    return { x: bulletX, y: bulletY, sin: sinAngle, cos: cosAngle };

那么调用是这样的;

   trajectory = this.calculateAngle();
   ig.game.spawnEntity(EntityBullet, trajectory.x, trajectory.y, { vel: { x: trajectory.sin, y: -trajectory.cos } });

但一切都是弧度,我希望它是罗盘度数。

4

2 回答 2

1

如果您只想将度数转换为弧度,那么您只需使用:度数d * (π/180)在哪里d

如果您还希望能够说出指南针的方向(如北、南、东、西),请创建一个枚举并将其转换为度数并使用度数到弧度的函数。

于 2013-12-19T03:00:21.130 回答
0

自从我进行任何游戏编程以来已经有一段时间了,但是您可以使用 MathHelper.ToDegrees 将您的弧度转换为度数。

于 2013-12-19T03:00:46.537 回答