在我的场景类中,我覆盖了更新函数,并按照建议here在onEnter()方法中调用scheduleUpdate()。所以在更新函数中,我调用了我的图层类的更新,它应该更新我的精灵:
void View::update(float dt)
{
world->Step(dt, 10, 10);
for(b2Body *b = world->GetBodyList(); b; b=b->GetNext())
{
if(b->GetUserData() != NULL && b->GetType() != b2_kinematicBody))
{
cocos2d::CCSprite *data = (cocos2d::CCSprite*)b->GetUserData();
data->setPosition(ccp(b->GetPosition().x * PTM_RATIO, b->GetPosition().y * PTM_RATIO));
data->setRotation(-1 * CC_RADIANS_TO_DEGREES(b->GetAngle()));
}
}
}
此刻,唯一的运动因重力而下降。然而,角色移动得如此之快。它几乎瞬间撞到了地板上。有没有办法减缓这种情况? 当我使用this tutorial作为目标c时,球的下落速度要慢得多。
答案 0 :(得分:0)
你是否正确设定了角色的质量?尽量减少它。另外,我建议你使用一个小的wrapper,这样可以更容易地使用box2d和cocos2d-x。
答案 1 :(得分:0)
发现问题。我将精灵的位置设置到屏幕的中心,但是我将身体的位置设置到底部。所以在第一帧中,精灵立即出现在底部。
所以如果有人有同样的问题:检查你身体的位置。不只是精灵的位置。