CSharp - 太空射击射击 Bug

  显示原文与译文双语对照的内容
0 0

我有一个空间枪手,旋转运动和拍摄,但当我拍摄时,弹出的子弹稍微到左边或者右边。


Bullets newBullet = new Bullets(Content.Load<Texture2D>("PlayerBullet"));
newBullet.velocity = new Vector2((float)Math.Cos(rotation),
 (float)Math.Sin(rotation)) * 5f + playerVelocity;
newBullet.position = playerPosition + newBullet.velocity * 5;

下面是一些我认为引起问题的代码

时间: 原作者:

0 0

我相信你的位置和速度计算不正确。

初始位置应该是球员的位置( 加上一个枪,如果举一个枪的举例。)


newBullet.position = playerPosition;

我不确定你为什么要把玩家的速度加到子弹上。 玩家移动的速度有多重要? 我也假设 * 5f 只是一个速度系数。


newBullet.velocity = new Vector2((float)Math.Cos(rotation), (float)Math.Sin(rotation)) * 5f;

试试这个,看看问题是否解决了。

原作者:
0 0

我希望子弹的初始位置是


newBullet.position = playerPosition + playerVelocity * 5;

代替


newBullet.position = playerPosition + newBullet.velocity * 5;

原作者:
...