我需要根据从游戏中心服务器接收到的位置移动 box2d 主体。

接收位置后,我只需使用以下方法更新 body 位置:-

   Carbody->SetTransform(b2Vec2(serverposition.x,serverposition.y),0);

但它以不适当的方式移动 body (例如。 body 在屏幕上显示一些错误)。同时我的 Sprite 图像不动(附有 body )。

最佳答案

我为解决定位问题所做的工作是我拍摄了一个普通的 Sprite 图像,并使用 box2d body 位置更改更新位置。

例如:-

您的车身运动基于服务器位置。它会在无形中移动。
你的 b2body 没有用户数据(图片)

carMainBody->SetTransform(b2Vec2(serverposition,carMainBody->GetPosition().y), 0.0f);

这里是你的普通 Sprite 图像。只需像这样附加您的 Sprite 图像
 car->setPosition(ccp(carMainBody->GetPosition().x*PTM_RATIO,carMainBody->GetPosition().y*PTM_RATIO));

这种方法对我来说效果很好。

关于ios - cocos2d-x中Box2d Body的运动,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26309380/

10-09 16:25