0

私は一種のUIマニアです。ゲーム内のすべての「画面」は、表示または非表示になったときにイン/アウトに移行する必要があります。私のゲームはリソースの点で単純なので、各「画面」をCCLayerにして、遷移の関数を定義し、すべてをメモリに残しておくと思いました。思ったより複雑になっています。

私は今、2つの主な問題があると思います。

1)各「画面」はCCLayerです。これは問題ないように見えますが、タッチイベントが非アクティブであっても、受信を停止できないようです。子スプライトはisTouchEnabledプロパティを尊重していないようです。そのため、私は常に非表示のボタンを押しています。

2)基本的に状態用のいくつかの個別のテクスチャを持つスプライトであるカスタムボタンクラスを作成しました。CCTargetedTouchDelegateプロトコルを使用します。これが上記の問題の大きな部分だと思います。

CCMenuの内容についてはよくわかりません。その設計された目的とその使用方法をよりよく説明するチュートリアルやドキュメントはありますか?cocos2dのドキュメントでは、各クラスの機能についてはまったく説明されていないため、ライブラリを適切に使用することは非常に困難です。また、レイヤーの代わりにシーンを使用する必要があるのはいつですか?カスタムトランジションを作成できますか?

4

2 に答える 2

0

メインメニュー(シーン全体よりもロードゲーム、新しいゲームなどのレイヤーを持つ方が簡単)など、メニューの1つのシーンに複数のレイヤーがある場合、すべてのボタンを次のように追加すると、レイヤーの子。次に、タッチを受け取らないようにするには、使用していないときにレイヤーを画面から移動します。ここに例があります。

[loadLayer setPosition:CGPointMake(-1000,-1000)];
[settingsLayer setPosition:CGPointMake(-1000,-1000)];
[menuLayer setPosition:CGPointMake(0,0)];

そして、ロードゲームレイヤーと言うボタンを選択するたびに、それを正しいレイヤーに逆にします。

[loadLayer setPosition:CGPointMake(0,0)];
[settingsLayer setPosition:CGPointMake(-1000,-1000)];
[menuLayer setPosition:CGPointMake(-1000,-1000)];
于 2012-08-11T15:08:51.720 に答える
0

メニューにはCCScenesを使用する方が便利です。非アクティブなCCSceneのすべての子はタッチイベントを受信しないため、その動作を管理する必要はありません。CCScenesにもクロスフェードのような組み込みのトランジションがありますが、あなたが私のようであれば、シーンをトランジションアウトするアクションを実行してから、CCDirector:replaceSceneを呼び出すことをお勧めします。

于 2012-08-17T21:45:02.757 に答える