我有我的世界在Box2d的場景中工作。基本上,一對夫婦的球彈跳,一切都很華麗。將功能分爲與世界對象通信的類(cocos2d/box2d)
但是,我想添加拖放球的能力。我已經可以在Cocos2D中使用靜態精靈來實現這一點。現在與Box2D,而不是將代碼保留在圖層文件中,我想將其移動到CCSprite子類(所有觸摸手勢等)
這意味着我必須在CCSprite子類和我猜的層世界?人們如何去做這件事?謝謝
TLDR:你如何將對象邏輯從Layer文件分離到外部文件?
我有我的世界在Box2d的場景中工作。基本上,一對夫婦的球彈跳,一切都很華麗。將功能分爲與世界對象通信的類(cocos2d/box2d)
但是,我想添加拖放球的能力。我已經可以在Cocos2D中使用靜態精靈來實現這一點。現在與Box2D,而不是將代碼保留在圖層文件中,我想將其移動到CCSprite子類(所有觸摸手勢等)
這意味着我必須在CCSprite子類和我猜的層世界?人們如何去做這件事?謝謝
TLDR:你如何將對象邏輯從Layer文件分離到外部文件?
有很多方法可以做你想做的。我這樣做:在我的遊戲中,我有gameController - NSObject的子類。在它的init
方法中,我創建了更多的控制器:1st - 用於顯示Box2d對象,2nd - 用於顯示來控件。如果我的任何對象需要告訴另一個對象有關任何事件(例如,在兩個特定的b2Body之間發生衝突),它會告訴它的所有者控制器(通過指針),這個事件會在它的父控制器上上升,父母和他所有的孩子控制者等等。例如:我在點擊一個節點。所有用於點擊,拖動等的邏輯都在它的控制器類中。然後,控制這個節點的控制器上升事件,並且所有其他控制器都知道這個事件,所以他們可以做什麼或什麼都不做。在這種情況下,我的box2dController獲取此消息並創建/移動b2Body。