2016-08-29 5 views
0

通常、プレイヤークラスには「draw(SpriteBatch batch)」メソッドと「update(float deltaTime)」メソッドが書き込まれます。どうして彼らは単に "render(SpriteBatch batch、float deltaTime)"と書いていないのですか?読みやすさのために?なぜ彼らは2つの方法を作るのですか?彼らは単一の方法で行うことができます。Java LibGDX更新と描画のメソッド

答えて

1

可読性と更新/変更の容易さがその理由の1つです。

しかし、物流上の理由もあります。描画を開始する前にゲームの状態が完全に最新であることを確認したいので、画面上に表示されているものは可能な限り最新のものにしてください。オブジェクトごとに1つのメソッドに更新とレンダリングを入れると、後で更新され、以前のオブジェクトの状態に影響を与えるオブジェクトと比較して、最初に更新および描画されたオブジェクトが期限切れになることがあります。しかし、更新と描画が分離されている場合は、ゲーム全体を更新してゲーム全体を描画することができます。

ゲームが物理を使用している場合、更新と描画を分離することで、ゲームの再生がフレームレートの影響を受けないようにワールドをfixed timestep(図面とは異なるレート)で更新できます。

1

ゲームロジックとレンダリング機能を分離したいからです。読んだ方が簡単ですし、レンダリングロジックより頻繁にゲームロジックを更新したい場合にも役立ちます。

+0

読みやすくするためですか?メインクラスでは、レンダリングメソッドで描画と更新を行います。 –

+1

はい。ゲーム全体をレンダリング機能に書き込むこともできますが、それを行うのは良い方法ではありません。 – Karprog

関連する問題