2011-08-31 62 views
-1

在我的遊戲中,我在GameLayer中製作了許多方法,需要在Level1中調用。我不知道爲什麼,但是當我點擊開始時,我在控制檯中出現此錯誤,遊戲崩潰。NSLog錯誤導致遊戲崩潰(cocos2d iPhone)

Assertion failure in -[CCTimer initWithTarget:selector:interval:] 

隨後與

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Signature not found for selector - does it have the following form? -(void) name: (ccTime) dt' 

我上傳GameLayer.h和.M這裏:http://www.4shared.com/file/O_1utrRj/undefined.html

注:1級(這裏我所說的方法)是GameLayer。

+0

您的代碼無法在我的XCode上編譯。 – Kheldar

+0

我只包括有問題的2個文件,而不是Helloworld,資源等。 – Joethemonkey101

+0

我讀了你的源代碼(部分原因是你發佈了一個完整的XCode項目)。這對於StackOverflow來說太廣泛了,甚至代碼審查姐妹網站。 – Kheldar

回答

1

你已經寫了一個不存在的方法moveBunnyM的調用。當它被有效地調用時,你的應用程序崩潰。

有哪些然而寫的方法moveBunnyM:(浮點),δ

替換行173:

[ptr moveBunnyM]; 

[ptr moveBunnyM:(float)dt]; 

因爲你調用從該方法方法叫做moveBunny,恰好需要一個dt參數

這將消除一次崩潰,但它表明您的源代碼存在嚴重的邏輯問題。

建議:不要在同一個.m文件中放置多個@implementation。創建幾個文件,每個類一個。 Level1應在Level1.h中定義,並導入Cocos.h,並在Level1.m中實現,並導入Level1.h。

+0

非常感謝,這使得更多的意義。我的錯。儘管如此,我仍然遇到了控制檯錯誤和崩潰。我錯過了什麼? 謝謝 – Joethemonkey101

+0

我正在看你的項目(僅僅是因爲我想看看紫色兔子會發生什麼)。 – Kheldar

+0

哈哈好的謝謝。應該發生的是它是英雄,可以用操縱桿控制,也可以用另一個操縱桿發射射彈。我試過碰撞檢測,但沒有得到測試,因爲這個。 編輯 - 這是不好的實踐,或有什麼問題嗎?我覺得它更容易,更方便,但如果這是一個問題,我會改變它。此外,我剛剛上傳的GameLayer文件已經更新,並且與我之前在整個項目中發佈的文件不同。 感謝您的幫助到目前爲止 – Joethemonkey101