0

应用于 Box2D 主体后:

    b2Vec2 force = b2Vec2(velocity.x/PTM_RATIO, velocity.y/PTM_RATIO); 
   _body->ApplyLinearImpulse(force,_body->GetPosition());

我正在尝试在许多游戏中(如涂鸦跳跃)在英雄身体到达屏幕顶部一定距离时停止移动并开始滚动舞台,以便我们感觉英雄仍在爬得更高。为此,我需要首先移动英雄,然后移动舞台。

如何正确实现这一点?任何想法?

4

1 回答 1

0

解决问题的想法很奇怪。您永远不会停止角色或任何环境对象。让他们按照 box2d 的意图行事。您已将所有内容添加到某种根节点,您的环境和角色。您所做的是创建某种“相机控制器”,然后将角色 CCSprite 或包装对象(如果有的话)作为目标。在您调用每一帧的更新函数中,您可以更改根节点的位置,使屏幕以角色为中心。您可以根据需要实现跟随延迟、平滑滚动和其他不错的功能。

不幸的是,我根本不使用 Cocos2d,所以我不能给你一个示例代码。给定的解决方案适用于 Cocos2d,因为它离我在工作场所使用的引擎不远。

于 2013-08-11T19:15:50.223 回答