【问题标题】:iPhone & cocos2d - Interval Action timing problem while running in deviceiPhone & cocos2d - 在设备中运行时的间隔动作计时问题
【发布时间】:2009-04-15 14:00:47
【问题描述】:

我正在为我的各种应用程序使用 cocos2d 框架,并且遇到了以下问题。我已经设置了一些动作序列和 CallFuncNDs,这些动作设置了持续时间,当我在 iPhone 模拟器中运行它时,它就像我期望的那样工作:转换需要我设置它们的时间,然后它们就会消失顺序正确。

当我在我配置的 iPhone 上测试它时,不到一秒就全部播放完毕。正确的顺序,动作之间的时间是成正比的,但是都被压缩到了一秒内。

任何人都知道为什么 cocos2d 动画在设备上会有不同的表现吗?我的代码都设置为类似于 cocos2d 效果演示,不同之处在于我正在为 ParticleSystem 而非 Sprite 设置动画 - 尽管问题仍然出现在 Sprites 中。

【问题讨论】:

    标签: iphone cocoa-touch opengl cocos2d-iphone


    【解决方案1】:

    我在模拟器中测试代码时遇到过类似的困难,它运行完美。但是当移到设备上时,时间似乎已经关闭。我将这种差异归因于模拟器对桌面 CPU 和内存的使用,当设备使用它的物理硬件时,由于 Cocos2d 处理事物的方式(逐帧,在“游戏循环”中),时间是关闭的。当你开始做一些事情时,帧率下降并且 Cocos 错误......尤其是当你的时间表运行得非常接近时,或者时间表会自行取消并以不同的时间重新安排(增量低至 0.1 及以下是我遇到最多的地方)。

    【讨论】:

    • 这是我最初的想法,但我明白当我说动画将运行 0.1 秒时,它会这样做,而不管硬件如何。它确实在模拟器中运行了 0.1 秒,但在 iPhone 上运行速度非常快——我希望它在 OpenGL 方面实际上比我的 MacBook 慢。
    • 我认为问题实际上在于 iPhone 实际上速度较慢,因此由于时间同步关闭,动画“似乎”播放得更快。在动画上调用 update 时,delta 时间比在 Simulator 上调用时要长得多,这使得动画更快地完成。
    猜你喜欢
    • 1970-01-01
    • 2012-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多