0

ゲーム用の小さなレベル システムをまとめようとしています。ゲームのメイン ロジックを処理する update メソッドが必要です。そこで、親クラスの .h ファイルでメソッドを宣言しました。

Level.h:

-(void)gameLogicTick:(ccTime)dt;

次に、Level.m で実装を行います。正確なコードは関係ないと思います。

Forest という Level のサブクラスを作成しました。Forest init-method で、gameLogicTickの間隔を指定したいので、次のようにしました。

[self schedule:@selector(gameLogicTick:)interval:5.0f];

これにより、ゲームがクラッシュし (5 秒後)、デバッグ メッセージが表示されなくなります。

では、現在のクラスで間隔を指定できるスケジュール更新メソッドを作成するにはどうすればよいでしょうか?

4

2 に答える 2

0

あなたがすることは大丈夫です。おそらく、Forest オブジェクトの割り当てが解除され (たとえば、親ノードに子として追加されなかったため)、次に CCScheduler がスケジュールされたメソッドを更新するときに、すでに解放されているインスタンスでメソッドを実行しようとします。

Xcode でグローバル例外ブレークポイントを有効にして、より多くのクラッシュ情報とクラッシュが発生した正確な行を取得する必要があります。

于 2013-01-12T16:20:09.503 に答える
0

gameLogicTick:親クラスのメソッドをいじらないでください。それを全速力でやらせてください。Forest.m で、単に呼び出します

[self schedule:@selector(update:) interval: 5.0f];

update:(ccTime)次に、フォレストの実装に適切なデルタがあることを確認してください。親クラスのメソッドと同じ名前を付けないでください。問題はありません。

于 2013-01-12T14:57:44.787 に答える