所以我试图用两个喷气背包来创造角色——其中任何一个都可以相互独立地发射,以产生偏离重心的脉冲(使用 Cocos2d、Chipmunk 和 SpaceManager)。
我的问题是,默认情况下,脉冲函数不考虑对象的当前旋转(即它指向的方向),因此无论方向如何,我使用的脉冲偏移和方向最终都是相同的字符指向。
我试图创建一个更逼真的模型 - 其中脉冲基于对象的现有旋转。我确定我可以以编程方式只维护一个向量变量,该变量保存角色指向的当前方向并使用它,但必须有一个更简单的答案。
我听说人们写了关于世界空间与 body 相对坐标的文章,以及默认情况下世界空间的冲动如何,而 body 相对可以解决我的问题。这是真的?如果是这样,您如何在这两个坐标系之间进行转换?
您能给我的任何帮助将不胜感激。
最佳答案
如果您将角色的当前方向(旋转的角度,逆时针方向)存储在 theta
中,你的脉冲向量在 ix
和 iy
,那么世界空间向量将是
ix_world = ix * cos(theta) - iy * sin(theta);
iy_world = ix * sin(theta) + iy * cos(theta);
角度
theta
cos
必须以弧度表示和 sin
正常工作。如果您需要将度数转换为弧度,请将角度乘以 PI / 180.0
.如果您想了解这个公式的来源,请阅读 here .
关于cocos2d-iphone - 如何创建基于旋转的脉冲矢量(Cocos2d、Chipmunk、Spacemanager),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5196171/