在cocos2D中,基于时间的计算应该放在哪里?

时间:2011-05-18 17:52:41

标签: iphone cocos2d-iphone

  

我想不断前进   屏幕(移动水平)和坏   人们出现并从各种攻击   玩家精灵的两面。这将   需要不断修改   图层上对象的值为   以及创造和破坏   它们。

有一个AppDelegate,它会激活HelloWorldLayer场景的CCDirector。

HellowWorldLayer.m创建了其他显示的内容,例如纹理和精灵。

现在,我应该向HelloWorldLayer添加逻辑以跟踪事物并生成/移动怪物,跟踪白天和夜晚的触发器吗?或者我应该创建另一个对象吗?

HelloWorldLayer拥有的对象是否能够访问HelloWorldLayer父对象并修改显示的内容并从中读取?

我应该创建一个新的Object来处理HelloWorldLayer之外的这个并实例化它吗?如果是这样,它是否可以访问HelloWorldLayer?

在HelloWorldLayer内部有init()方法可以创建所有内容,但我有点怀疑我应该把逻辑放在那里。

TL; RD:我应该在哪个对象中放置游戏循环'逻辑代码?

1 个答案:

答案 0 :(得分:1)

我将游戏循环代码放入CCScene对象中,该对象是HelloWorldLayer的父对象。

起初我在主游戏CCLayer内部进行了游戏循环,但是当我开始添加越来越多的图层时,尝试将对象从游戏图层添加到其他图层,例如UI图层,它变得令人费解。

自从我将它移动到CCScene之后,似乎更加清晰,现在它还处理各个层之间的任何共享依赖关系。

我还选择将它放入CCScene,而不是为此目的的全新类,因为我仍然希望能够使用cocos2d调度程序来触发循环的每次迭代。 。由于CCScene仍然只是CCNode,因此它可以访问此调度程序。