-1

私のゲームでは、Level1で呼び出す必要のある多くのメソッドをGameLayerで作成しました。理由はわかりませんが、[開始]をクリックすると、コンソールにこのエラーが表示され、ゲームがクラッシュします。

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

注:Level1(私がメソッドを呼び出す場所)はGameLayerにあります。

4

1 に答える 1

1

存在しないメソッドmoveBunnyMへの呼び出しを記述しました。効果的に呼び出されると、アプリケーションがクラッシュします。

ただし、作成したのはメソッドmoveBunnyM :(float)deltaです。

行173を置き換えます。

[ptr moveBunnyM];

[ptr moveBunnyM:(float)dt]; 

このメソッドは、たまたまdtパラメーターを受け取るmoveBunnyというメソッドから呼び出すためです。

これにより1つのクラッシュが排除されますが、ソースに重大なロジックの問題があることを示しています。

アドバイス:同じ.mファイルに複数の@implementationを入れないでください。クラスごとに1つずつ、複数のファイルを作成します。Level1は、Cocos.hをインポートしてLevel1.hで定義し、Level1.hをインポートしてLevel1.mで実装する必要があります。

于 2011-09-02T23:27:00.083 に答える