2011-05-27 7 views
0

私はAndroid開発の初心者ですが、現在画像付きのグリッドからなるゲームを開発中です。 私の主なゲームアクティビティはGridViewをロードします。GridViewは、拡張したカスタムBaseAdapterによって読み込まれます。アイデアは、グリッドが再描画された画像をユーザがクリックするとAIが移動し、グリッドが再び描画されるなどです。 したがって、私のBaseAdapterではImageViewを作成するときに、実行するカスタムOnClickListenerを設定していますいくつかの計算を行い、その後BaseAdapter.notifyDataSetChanged()を呼び出してGridViewを更新します。Androidアプリケーションで構造化する方法がわからない

しかし、私はAIの「移動」のロジックをどこに置くべきかについては不明ですが、これをどのように呼び出すことができますか?カスタムのOnClickListenerクラスを持つ代わりに、メインのゲームアクティビティではなく、OnClickListenerを実装する必要がありますか?あなたのゲームがGridView上のクリックに基づいている場合

おかげ

答えて

0

は、私はそこOnClickListenerキープで間違って何も表示されません。ただし、リスナー内のコードを単純化して、ゲームのロジックを処理するためにGameクラスの関数nextMove()を呼び出させるだけでよいでしょう。

このクラスはあなたの主なアクティビティではないことに注意してください(アクティビティの名前を「ゲーム」よりも少しわかりやすい名前に変更します)。ゲームロジックからUIを可能な限り分離してください。明らかに、ロジックはUIイベントに応答し、それに応じてUIを変更する必要がありますが、相互関係はそこで停止する必要があります。

+0

現時点では、GameActiviyがBaseAdapterにデリゲートし、BaseAdapterがOnClickListenerに委譲されます。しかし、私はGameActivityオブジェクトをOnClickListenerに渡してダイアログなどをロードする必要があります。そのため、GameActivityとOnClickListenerの両方が互いにメソッドを呼び出すことになります。これはOKですか、それとも良い方法がありますか? (私は単純化のために上のいくつかのクラスを無視しました) –

関連する問題