2010-12-13 1 views
3

Androidプラットフォームでは、レンダリングをロジックとどのように分離するのですか? 私は基本的なカスタムスレッドクラスを描画することができますが、私は得られないものは、ロジックの更新をどこに置くかです。 いくつかの研究をすると、レンダリングとロジックの更新のそれぞれに2つの異なるスレッドを使用することが最善であると思います。 私がatmと考えることができるのは、同じスレッドでonDrawを使ってupdatelogicにすることです。 チュートリアルへの指針や、その問題に関するいくつかの洞察が高く評価されます。ありがとうございます。Androidのレンダリングとロジックスレッド

+0

ロジックとレンダリングを同時に実行したいのですか?これはあなたのゲームで問題を引き起こす可能性があります。 – prgmast3r

+0

ええと、よく分かっているように、(プレイヤーが「上」/前進するために「上」を押したときに)いつでもあなたのロジックを更新し、更新されたグラフィックス/スプライトの位置をレンダリングするでしょう。しかし、更新ロジックの呼び出しは、レンダリングが行われるスレッドと同じスレッド内にあるべきではありません。 – semajhan

+1

semajhan、それらの中に物理学を持つゲームは、ユーザーの入力に基づいて更新するだけでなく、経過時間に基づいて更新します。 –

答えて

2

私はアンドロイド市場で最もダウンロードされたゲームの1つを開発しましたが、それ以来2年経っていますので、この解決策は時代遅れになる可能性があります。私がやったことだった: - コンテンツビュー としてViewオブジェクトを使用する - そのViewオブジェクトのクラス のdraw()メソッドをオーバーライドする - draw()メソッドの最後で、()

お知らせdoLogicを呼び出すことレンダリングとdoLogic()呼び出しの両方がメインスレッドで発生します。これはいいえのように聞こえますが、ほとんどのゲームでは機能します(複雑になることなく自動同期ができます)。