2011-05-18 69 views
2

我想不斷前進 屏幕(移動的水平),並有不好的 球員出現,並從球員精靈各方 攻擊。這將要求 需要不斷修改圖層上的對象的 的值,作爲 以及 它們的創建和銷燬。基於時間的計算應該在哪裏進行cocos2D?

有一個AppDelegate,它激發了HelloWorldLayer場景的CCDirector。

HellowWorldLayer.m創建它顯示的其他內容,如紋理和精靈。

現在,我應該向HelloWorldLayer添加邏輯以跟蹤事物並生成/移動怪物,跟蹤白天和夜間觸發器嗎?或者我應該創建另一個對象?

HelloWorldLayer擁有的對象是否可以訪問HelloWorldLayer父對象並修改顯示內容並從中讀取內容?

我應該創建一個處理HelloWorldLayer之外的新對象並實例化它嗎?如果是這樣,它是否能夠訪問HelloWorldLayer?

HelloWorldLayer內部有創建一切的init()方法,但我有點懷疑我應該把邏輯放在那裏。

TL; RD:我應該在哪個對象中放置'遊戲循環'邏輯代碼?

回答

1

我把我的遊戲循環代碼放入CCScene對象,它是您的HelloWorldLayer的父對象。

起初,我在主遊戲CCLayer內部有遊戲循環,但隨着我開始添加越來越多的圖層,試圖從遊戲圖層獲取對象到其他圖層(如UI圖層),它變得複雜。

因爲我將它移動到CCScene,它現在也處理各層之間的任何共享依賴關係,似乎更加清潔。

我也選擇將它放到CCScene,而不是一個全新的類爲此目的,因爲我想仍然可以使用cocos2d調度程序來觸發循環的每次迭代...因爲CCScene仍然只是一個CCNode,它有權訪問此調度程序。