2011-12-16 9 views
0

私は最初のアンドロイドゲームを作ろうとしていて、画面間の遷移の仕方を理解するのが難しいです。例えば:は複数のアクティビティとサーフェイスビューに移行する正しい方法ですか?

私のゲームは主な活動を開始し、タップに

独自のスレッドを初期化しTitleScreen面図Iが独自のスレッドを初期化しGameView面図をロードする新しいアクティビティをロードする新しい意思

これを起動し、私のデバイス(エボ3D上でテストするときにすべてが正常に動作します)しかし、私のテストベッドのタップでクラッシュ、私は迅速なテストのためのバーチャルボックスでアンドロイドx86を使用しています。これは私のコードやシミュレータの問題で問題になる可能性はありますか?

また、タイトル画面とゲーム画面の間にレベル選択画面を追加したいのですが、別のアクティビティ/表面ビュー/スレッドコンボを作成することでこれを行うことができたと思います。無駄/プロセスの重い方法?

答えて

1

onDrawメソッドから呼び出すさまざまなメソッドを作成できます。各方法は、1つの画面(ゲーム、レベル、スコア)を描画します。シンプルな操作を開始するには、onDrawでスイッチのケースを確認し、適切なものを呼び出します。

異なるレイヤーを使用する場合は、スコアボードがアクティブなときに背景(ゲーム)が一時停止されるように、異なるレイヤーを使用する必要があります。これは、バックグラウンドがまだ見えるようにしたい場合や、その他の理由でアクティビティーが必要な場合にのみ意味があります。

しかし、複数のサーフェイスビューを同時にアクティブにすることは絶対に避けてください。アンドロイドはそのようにはしません。

+0

ええ、状態としてIN_GAME、MENU、PAUSEDを持つSTATE変数があります。 – Blundell

+0

ありがとう、もし私が正しく読んでいるのであれば、今まで何をしていたのですか?私のサーフェイスビューを正しく処理していれば、レベル変数を – Be77amy

+0

の私のタイトル画面の私のonDrawに追加してください。 2つの方法を組み合わせることができます。 1つの方法は、一度に必要なものを描画する表面ビューを1つだけ持つことです。私はこれを実現するには、状態などを格納する変数をチェックします。方法2は、それぞれ独自のサーフェイスビューを持つ複数のアクティビティを持つことです。しかし、ここではインテントを使用してそれらの間を「切り替える」必要があります。ヒストリスタックとonPauseなどのメソッドに注意を払わなければなりません。複数の活動が必要ない場合は、それらを使用しないでください。 – NikkyD

0

私は単なるアプリケーションのためのより多くの活動を使用するのは良いとは思いません。 ViewFlipperにxmlレイアウトファイルの数を使用してみてください。ここでは、トランジションエフェクトを非常に簡単に適用できます。

私はあなたにトランジションエフェクトを提案していますが、それも一度チェックしてください。私はどちらが良いかも考えています。

関連する問題