对于cocos2d / cocos2dx,传统的update-render-loop方法是否过度?

时间:2012-05-01 22:30:32

标签: cocos2d-iphone cocos2d-x

所以,让我说我正在制作棋盘游戏。我有一个游戏板阵列,我的逻辑需要检查位置和碰撞检测,这一切都很好。

传统上使用类似directX的东西,你会有一个游戏循环,测试一些逻辑,更新游戏板阵列,最后绘制屏幕, 但是使用cocos2dx,我们不直接绘制到屏幕上,我们将sprite添加到图层中,而cocos会完成剩下的工作!

例如..

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

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

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

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

任何人都可以帮忙解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

所有游戏引擎都使用更新循环。没有它,你就不会渲染任何东西。

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

如果你想要“新学校”那么你将会看到一个游戏设计工具,而不是游戏引擎。

答案 1 :(得分:1)

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