在我的应用程序中,我有一个有脚的角色,我想制作它,以便在我的应用程序中它看起来像站在另一个 CCSprite 的顶部,因为它在屏幕上移动(动画)。一切正常,除了有一点我无法弄清楚的定位问题!让我再解释一下这个问题,当角色在 CCSprite 之上时,角色似乎以非常快的间隔上下移动了大约 10 个点。
有谁知道为什么会这样?
谢谢!
最后编辑:我想再次感谢您帮助我完成所有这些。首先,由于帖子太长,我已经删除了所有其他编辑,如果您出于任何原因需要参考较旧的编辑,只需查看我的编辑历史!
因此,经过大约一个小时的测试,我已将其缩小到您之前提到的一个问题,检查角色和地板是否碰撞的 if 语句不会在游戏循环中的每次迭代中被调用,当它们应该是 (就他们在 UI 中的外观而言)。
我的 cocosGameLoop 日志在所有碰撞检测代码之前,但仍在游戏 loop.f 中
我还注意到我的 NSLogs 中有一个模式,如下所示:
2012-05-27 17:00:54.791 App[2769:707] cocosGameLoop
2012-05-27 17:00:54.811 App[2769:707] cocosGameLoop
2012-05-27 17:00:54.825 App[2769:707] cocosGameLoop
2012-05-27 17:00:54.841 App[2769:707] cocosGameLoop
2012-05-27 17:00:54.858 App[2769:707] cocosGameLoop
2012-05-27 17:00:54.874 App[2769:707] cocosGameLoop
2012-05-27 17:00:54.891 App[2769:707] cocosGameLoop
2012-05-27 17:00:54.908 App[2769:707] cocosGameLoop
2012-05-27 17:00:54.924 App[2769:707] cocosGameLoop
2012-05-27 17:00:54.928 App[2769:707] collisiontwo
2012-05-27 17:00:54.929 App[2769:707] two
2012-05-27 17:00:54.941 App[2769:707] cocosGameLoop
2012-05-27 17:00:54.944 App[2769:707] collisiontwo
2012-05-27 17:00:54.945 App[2769:707] two
2012-05-27 17:00:54.958 App[2769:707] cocosGameLoop
2012-05-27 17:00:54.974 App[2769:707] cocosGameLoop
2012-05-27 17:00:54.991 App[2769:707] cocosGameLoop
2012-05-27 17:00:55.008 App[2769:707] cocosGameLoop
2012-05-27 17:00:55.025 App[2769:707] cocosGameLoop
2012-05-27 17:00:55.043 App[2769:707] cocosGameLoop
2012-05-27 17:00:55.058 App[2769:707] cocosGameLoop
2012-05-27 17:00:55.076 App[2769:707] cocosGameLoop
2012-05-27 17:00:55.078 App[2769:707] collisiontwo
2012-05-27 17:00:55.078 App[2769:707] two
2012-05-27 17:00:55.091 App[2769:707] cocosGameLoop
2012-05-27 17:00:55.094 App[2769:707] collisiontwo
当我 NSLog 字符 Y 坐标时,我还注意到它在几个交互中保持在同一点附近(即使它应该发生碰撞,因此它会与上面 NSLog 中的一堆 cocosGameLoop 调用重合),然后当它实际上碰撞(以编程方式),它从之前的 Y 坐标向上移动了大约 14 个点。所以有大约 14 个点的上下抖动。
所以底线是,我如何才能使碰撞代码在每次迭代中都被调用并且不会抖动大约 14 点?我不想更改锚点,因为这会弄乱我的动画定位等等。无论如何,你有什么推荐的?另外请记住,我只使用 Box2D 进行碰撞检测,所以我必须将所有内容保存在 Cocos2D 代码中。
最后,我认为由于重力,我的应用程序中存在舍入点错误,但即使我弄乱了诸如将重力更改为整数之类的值,它也没有解决闪烁问题,所以这是我上面提到的 100% 的问题.
无论如何,这是问题的核心,我认为你可以看到一些我看不到的东西!让我知道你的想法 :)
非常感谢!