精灵旋转

大家好,我新建的场景使用了PhysicsWorld,精灵旋转时,绕Y轴旋转无效果,绕X轴正常。 有人遇到过这样的问题么,请大家给点意见。谢谢!

上代码看看吧

问题是这个原因, CCLOG(“Node WARNING: PhysicsBody doesn’t support setRotationSkewY”);
能说明一下怎么解决吗? 我的精灵是个侧面,从屏幕左右进入。

void Node::setRotationSkewY(float rotationY)
{
if (_rotationZ_Y == rotationY)
return;

#if CC_USE_PHYSICS
if (_physicsBody != nullptr)
{
CCLOG(“Node WARNING: PhysicsBody doesn’t support setRotationSkewY”);
}
#endif

_rotationZ_Y = rotationY;
_transformUpdated = _transformDirty = _inverseDirty = true;

}

额,那提示不是说了吗,PhysicsBody不支持setRotationSkewY:12:

我需要做精灵翻转,不然从左右进入,有一侧精灵会是倒着走的

源码下有一段这个注释,你看下…
// physics rotation based on body position, but node rotation based on node anthor point
// it cann’t support both of them, so I clear the anthor point to default.
if (!getAnchorPoint().equals(Vec2::ANCHOR_MIDDLE))
{
CCLOG(“Node warning: setPhysicsBody sets anchor point to Vec2::ANCHOR_MIDDLE.”);
setAnchorPoint(Vec2::ANCHOR_MIDDLE);
}
然后绕x轴也应该是不正常的。我这边测了下绕Y旋转,结果第一次成功了,可是只要再和其他的碰撞一次,
马上就变回来了…好奇怪:12::12:

谢谢你,这个注释,说的可以明白,刚体的旋转点和精灵的锚点可能不同,所以旋转的时候,理论上,刚体会越来越大,我用的3.3final版本,绕X轴旋转是正常的,即使碰撞后,也都正常,绕Y轴,一次都没成功过。

你能说下,引擎里,处理旋转的逻辑不,就是具体在那个类里处理旋转,void Node::setRotationSkewY(float rotationY),这个函数只是赋值,赋值后,在哪里会调用它