2010-08-11 78 views
0

我有一個設計問題,這可能是由於這樣的事實,我不完全理解的cocos2d和Box2D的呢。遊戲對象設置在cocos2d + Box2D的

我想創建具有CCSprite(圖像數據)和b2Body(物理)的遊戲對象,我會是正確的,使一個同時包含封裝對象?如果我這樣做,這將讓我作出更改CCSprite

OR

正如我在示例代碼的b2Body具有精靈被設置爲用戶數據變量都看到了。然後用這個方法,我只需要一個指向物理對象的單個指針來處理CCSprite。

Thx提前。

回答

1

我最喜歡的做法是將兩者封裝在一個Actor對象中。我的Actor對象還負責根據b2Body數據更新CCSprite位置/旋轉。然後我使用該Actor對象作爲b2Body中的userData。將Actor作爲userData在迭代聯繫偵聽器中的實體時非常有用。

+0

這似乎是一個更好的解決方案,因爲我需要以其他方式對我的Actor使用物理對象。 – kohlerfc 2010-08-27 11:08:20

1

一個簡單的解決方案是將body的userData成員設置爲指向精靈,而精靈的userData成員指向body。通過這種方式,您可以通過簡單方便的方式訪問它們。那麼你不應該將精靈和主體對象封裝在一個actor中。