我有一些精靈,我不知道從哪個類繼承。我目前使用CCLayer來做,因爲我可以讓所有必須添加到其類中的子元素的所有孩子,但觸摸事件被所有重疊層檢測到,並且可能不那麼聰明。因此,從外行的角度來說,我想要一個火焰噴射器,例如當我觸摸它時必須添加火焰。我這樣做,僅僅通過增加FlameThrower.h類(子類CCLayer內的火焰。如果我是子類CCSprite,我將不得不增加火焰中是無效的,以及,對我父母的班?那麼,什麼是這裏是正確的做法?對我的精靈使用CCLayer或CCSprite類嗎?
0
A
回答
1
你可能不需要subclasssing CCSprite或者CCLayer可言。
這是一個基本的cocos2d遊戲架構問題,我想會得到更多的討論。
對於遊戲我已經創建的,我使用NSObject的或CCNode作爲創建字符的基類。
這些角色控制器類運行角色AI的邏輯,擁有物理角色的物理主體,並控制一個或多個代表角色的角色。
如果字符控制器將不需要由CCNode提供的屬性或功能性,然後我子類NSObject的,這通常是用於基於物理學的字符的情況。
用戶輸入通常由HUD擁有的,但有時你會希望直接將其添加到特定的角色在遊戲世界中。在這種情況下,您可能想要爲CCLayer創建子類以添加觸摸和加速度計,或創建CCNode的子類並向觸發調度程序註冊。
通常我創造精靈在一個單獨的類,然後由該角色管理部建立並擁有一個字符。
我通常創建具有子畫面片一至四次,我有一個遊戲管理類負載這些作爲CCSpriteBatchNodes並進入CCSpriteFrameCache和所述遊戲經由世界建築物腳本引擎創建的字符,那麼,當我傳遞給需要一個參考CCSpriteBatchNode添加到該字符,以便它可以使用批處理節點向其添加字符精靈。
字符,那麼與遊戲管理或parant字符寄存器進行更新,管理,並最終破壞和清理。
對於基於物理的字符,通常甚至不需要繼承CCNode(更不用說CCLayer或CCSprite)的子類,除非您希望物理主體直接控制節點的行爲,而不是控制節點或NSObject將擁有。
相關問題
- 1. 無法添加精靈幀和CCSprite
- 2. 使用cocos2d中的CCSprite數組添加精靈的問題
- 3. 如何交換CCSprite對象中的精靈Cocos2d-X
- 4. Cocos2D:子類化精靈和動畫作爲CCLayer給我帶來麻煩
- 5. 我應該對每個頁面使用單獨的精靈還是對所有頁面使用單個精靈?
- 6. 在Three.js中使用精靈或BufferedGeometry更高效嗎?
- 7. CCSprite用行動跨越屏幕邊界(副本精靈問題)
- 8. 使用nodeAtPoint選擇我用手指觸摸的精靈不選擇精靈
- 9. 使我的玩家精靈在我的平臺上的土地精靈
- 10. CCLayer子類在添加CCSprite時隨機崩潰
- 11. pygame的:使用精靈
- 12. ios - 每個UIButton或一個精靈+ UILabel的個人精靈?
- 13. 我可以將手臂小精靈和手臂精靈混合在一起嗎?
- 14. 對精靈的CCWave動作
- 15. 如何在cocos2d-x(android)中縮放精靈(CCSprite)?
- 16. 使用具有多個精靈的精靈表
- 17. 如何刪除精靈並再次使用相同的精靈
- 18. 我的精靈周圍有
- 19. 使我的XNA精靈正常跳轉
- 20. 我怎麼能借鑑的東西精靈精靈不
- 21. 使用ActionScript3旋轉精靈
- 22. 使用css精靈與javascript
- 23. 在extjs中使用精靈
- 24. 使用Swift旋轉精靈
- 25. 使用php創建精靈
- 26. Libgdx使用轉換精靈
- 27. 如何使用精靈CSS
- 28. 如何把使用精靈
- 29. 如何使用CSS精靈
- 30. 使用jQuery和精靈
謝謝。是的,我也和CCNode一起去了。我坦率地不明白爲什麼CCNode和CCLayer之間沒有任何內容。我一直面臨的問題是:觸摸檢測功能的節點的邊界框由它包含的子節點定義。就我而言,這將是遊戲引擎的一個非常重要的組成部分。 – 2012-08-02 20:47:58