0

Cocos2D の特殊性を発見しましたが、修正できないようです。AppDelegate から、CCScene である Menu にロードします。シーンには CCLayer があり、それ自体が CCMenu を保持しています。すべてが機能し、初めて見つけることができます。ゲームが終了したら、ユーザーを GameOverScene に誘導し、メニューに戻るように促します。メニューシーンをリロードして呼び出してい[[CCDirector sharedDirector] replaceScene:menu]ます。ただし、このメニューに入った後、すべての入力機能ではありません。メニュー項目をタップすることはできなくなりましたが、項目をパン/マルチタッチしてトリガーすることはできます。何を与える?

CCScene を初期化して入力を受信するようにリセットする方法はありますか? もしそうなら、これは CCMenu の入力受信を台無しにしますか?

4

2 に答える 2

1

いずれかのクラスで、、などonEnterのon *メソッドのいずれかをオーバーライドしましたか?onExit

その場合は、それぞれでスーパー実装(つまり[super onEnter])を呼び出す必要があります。そうしないと、スケジューリングや入力などの一部のcocos2d機能が機能しなくなる可能性があります。

于 2013-02-18T21:03:11.340 に答える
1

私はついにそれを理解しました、そして答えは私の目の前にありました. ゲーム開発の早い段階で、KKInput がジェスチャを飲み込むのを防ぐ方法が必要でした。このアクションの影響については完全にはわかりませんが、次のようにすることができました。

KKInput* input = [KKInput sharedInput];
UITapGestureRecognizer* tapGestureRecognizer;
tapGestureRecognizer = input.tapGestureRecognizer;
tapGestureRecognizer.cancelsTouchesInView = NO

Kobold2D のデフォルトの動作はすべてのタッチを飲み込むことであり、CCMenu がタップ ジェスチャを受け取るのを妨げていたようです。

于 2013-02-19T01:29:48.347 に答える