因此,我尝试用两个喷气背包创建角色-可以独立发射两个喷气背包,以产生一个距重心的脉冲偏移(使用Cocos2d,Chipmunk和SpaceManager)。

我的问题是,默认情况下,脉冲功能未考虑对象的当前旋转(即其指向的方向),因此无论使用哪种方向,我使用的脉冲偏移量和方向最终都相同字符指向。

我试图创建一个更现实的模型-脉冲基于对象的现有旋转。我确定我可以以编程方式仅维护一个 vector 变量,该变量保留角色指向的当前方向并使用该变量,但是必须有一个更简单的答案。

iv听到人们写有关世界空间与身体相对坐标的文章,以及默认情况下世界空间的冲动如何,而身体相对将解决我的问题。这是真的?如果是这样,您如何在这两个坐标系之间转换?

您能给我的任何帮助将不胜感激。

最佳答案

如果您将角色的当前方向(角色旋转的角度,逆时针旋转)存储在theta中,并且您的脉冲 vector 在ixiy中,则世界空间 vector 将为

ix_world = ix * cos(theta) - iy * sin(theta);
iy_world = ix * sin(theta) + iy * cos(theta);
theta的角度必须为弧度,才能使cossin正常工作。如果需要将度数转换为弧度,请将角度乘以PI / 180.0

如果要查看此公式的来源,请阅读here

关于cocos2d-iphone - 如何创建基于旋转的脉冲矢量(Cocos2d,花栗鼠,Spacemanager),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5196171/

10-10 17:32