申请Box2D机构后:
b2Vec2 force = b2Vec2(velocity.x/PTM_RATIO, velocity.y/PTM_RATIO);
_body->ApplyLinearImpulse(force,_body->GetPosition());
我正在尝试在许多游戏(如涂鸦跳跃)中停止移动英雄身体一旦它从屏幕顶部到达一定距离并开始滚动舞台,以便我们感觉英雄仍在攀升。为此,我需要首先移动英雄,然后移动舞台。
如何才能正确实现?有什么想法吗?
答案 0 :(得分:0)
解决问题的想法很奇怪。您永远不会停止角色或任何环境对象。让它们按照box2d的意图行事。您已将所有内容添加到某种根节点,您的环境和角色。你要做的是创建某种“相机控制器”,你可以将字符CCSprite或包装对象(如果有的话)作为目标。在您调用每个帧的更新功能中,您可以更改根节点位置,使其在屏幕上居中于角色上。您可以根据需要实现跟随延迟,平滑滚动和其他不错的功能。
不幸的是我根本不使用Cocos2d,所以我不能给你一个示例代码。给定的解决方案适用于Cocos2d,因为它与我在工作场所使用的引擎差不多。