我一直在使用由(http://brandonreynolds.com/blog/2011/01/09/cocos2d-sliding-menu-grid/)提供並在(http://www.cocos2d-iphone.org/forum/topic/12477)中討論的SlidingMenuGrid.mm。它對我從頭開始做的遊戲項目非常有效。使用SlidingMenuGrid.mm後,Cocos2d庫導入混亂了嗎?
不幸的是,我然後試圖將其添加到現有的源代碼,從(http://www.apress.com/9781430233039)書,並沒有奏效。第一個問題是,在CCMeu.h以下列舉並沒有宣佈,所以我不得不將它們添加:
typedef enum {
kCCMenuStateWaiting,
kCCMenuStateTrackingTouch
} tCCMenuState;
enum {
//* priority used by the menu for the touches
kCCMenuTouchPriority = -128,
//* priority used by the menu for the mouse
kCCMenuMousePriority = -128,
};
然後,編譯錯誤得到了降低,我留下了以下錯誤:
/Classes/SlidingMenuGrid.mm:117: error: return-statement with a value, in function returning 'void'
很奇怪,因爲父類返回的是無效的,甚至更多,在另一個項目中插入的相同的庫工作正常,不會抱怨(代碼是相同的)。
這裏是SlidingMenuGrid.mm線117以供參考:
-(void) addChild:(CCMenuItem*)child z:(int)z tag:(int)aTag
{
return [super addChild:child z:z tag:aTag];
}
我想這個問題可能與cocos2d的由示例文件的源代碼包含的版本做。因此,我刪除了「CocosDenshion」,「Cocos2d」,「cocoslive」和「FontLabel」文件夾,並用另一個項目替換了它們。不幸的是現在我得到32個編譯錯誤..沒有一個:) ..第一個是
/Classes/GameScene.h:36:「CCLabel」
它看起來有望符限定符列表前:錯誤對我來說,就像我對圖書館更加混亂一樣。然後,我清理了項目和所有目標並重新編譯,但沒有更改。我試過幾次我在這裏發佈這個消息..我有點卡住..抱歉..
感謝您閱讀..
感謝您的建議,最終並非由於此原因.. CCLabel出現問題,無法識別(我必須用CCLabelTTF替換CCLabel)。當我嘗試在我的練習中使用一些代碼示例時,我也這麼做了。我不知道是不是因爲編譯器。我不知道這個選擇,因此取代了代碼。我可以試試嗎?順便說一句,我想感謝你寫的這本偉大的書,我全讀了這本書,並且非常高興你發佈的材料數量。 – mm24 2012-02-22 07:58:40