【问题标题】:Is the traditional update-render-loop method overkill for cocos2d/cocos2dx?cocos2d/cocos2dx 传统的 update-render-loop 方法是不是有点矫枉过正?
【发布时间】:2012-05-01 22:30:31
【问题描述】:

假设我正在制作棋盘游戏。我有一个游戏板阵列,我的逻辑需要检查位置和碰撞检测,没关系。

传统上使用类似 directX 的东西,你会有一个游戏循环,测试一些逻辑,更新游戏板数组,最后绘制屏幕, 但是在 cocos2dx 中,我们不直接在屏幕上绘制,而是将精灵添加到图层中,其余的由 cocos 完成!

例如..

  • 初始化一个代表游戏板的游戏数组
  • 初始化游戏对象
  • 将对象添加到数组中
  • 更新屏幕(将数组渲染到屏幕)
  • 开始游戏循环
  • 测试一些逻辑条件
  • 从数组中移除对象
  • more 测试一些逻辑条件,更新对象位置
  • 将对象添加到数组中
  • 再次更新屏幕
  • 循环

前一个可以正常工作,但我不需要从图层中删除对象,只需更新其位置并重新渲染到屏幕, 使用 cocos2d/cocos2dx 如果我保留对该对象的引用,我可以移动它并更新数组。

我可以继续使用这种方法,但我想知道我是否遗漏了什么。

游戏阵列有助于游戏逻辑并模仿实际可玩区域,但我不禁觉得它有点石器时代。

有人可以帮忙吗,我完全错过了情节吗?

【问题讨论】:

    标签: cocos2d-iphone cocos2d-x


    【解决方案1】:

    所有游戏引擎都使用更新循环。没有它,您将不会渲染任何内容。

    也就是说,如果您的游戏完全由用户输入驱动,您可以对用户输入事件(触摸)做出反应,然后才执行游戏逻辑(移动或移除棋子、检查获胜条件、更新分数、下一回合)。

    如果您想要“新派”,那么您将关注的是游戏设计工具,而不是游戏引擎。

    【讨论】:

    • 对不起,我应该提到这一点。是的,我正在使用预定更新来渲染对象移动等,我的问题实际上是关于使用大型游戏阵列,但我想,它可以工作,所以我会保持简单。顺便说一句很酷的书!
    【解决方案2】:

    这对我来说很好。要记住的是,在您的游戏循环期间,您将能够处理使棋盘游戏保持有趣的动画。我认为这并不过分,你总能找到动画的东西。

    【讨论】:

      猜你喜欢
      • 2013-03-25
      • 1970-01-01
      • 1970-01-01
      • 2017-05-03
      • 2013-01-10
      • 1970-01-01
      • 2015-03-09
      • 1970-01-01
      • 2011-10-24
      相关资源
      最近更新 更多