gpt4 book ai didi

c++ - 根据另一个 Sprite SDL2 和 C++11 的旋转更改 Sprite 的位置

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:21:52 24 4
gpt4 key购买 nike

我有一个太空主题游戏,其中有一艘宇宙飞船随相机移动并使用 SIN&COS 函数旋转,精度为 1 度。宇宙飞船正确移动和旋转。我现在正在研究从所述宇宙飞船发射的子弹。

到目前为止,无论飞船面向哪个方向,我都可以创建一个直接从飞船出发的镜头。但是我想知道是否有一种方法可以让我根据宇宙飞船所面对的位置生成一个镜头?生成后,我可以处理所有角度的镜头。我还不知道如何让它根据它的旋转在宇宙飞船前面产卵。

我在 C++ 11 中使用 SDL2。

如果可能的话,我不希望你直接告诉我代码,因为我不会从中学到任何东西。我将其用作学习经验。我是否需要为宇宙飞船 360 度转动周期的每 1 度角说明生成位置的点?或者他们是一种更动态的方式来做这样的事情?

最佳答案

您可以通过对船舶旋转应用三角函数来计算 x 和 y 偏移量。将其添加到船舶位置,您将获得弹丸的绝对位置。例如:

bulletRotation = shipRotation;
bulletCenterX = shipCenterX + cos(shipRotation) * offset;
bulletCenterY = shipCenterY + sin(shipRotation) * offset;

如果您已经实现了子弹的物理特性,您还可以重复使用该逻辑。让子弹往前一点就行了。

确保不要混合度数和弧度。

关于c++ - 根据另一个 Sprite SDL2 和 C++11 的旋转更改 Sprite 的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24973221/

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