ファイルに保存されている画像を画面に表示する際の基本となる手順があります。これは、どの技術でゲームを作る場合でもおおむね共通性があります。
ゲームで使うキャラクターや背景の画像は、たいていの場合ファイルに保存されているわけですが、ファイルに保存されている画像を画面に表示する際には、次のステップを踏みます。
プライマリサーフェスとは、プレイヤーが実際に目にするゲーム画面のことです。たとえば Windows でゲームを作る場合はウィンドウがこれに相当します。一方のオフスクリーンサーフェスとは、プレイヤーからは見えないもうひとつのゲーム画面を意味します。なぜ、ゲーム画面がふたつもあるのかというと、ゲーム画面のチラつきを抑えるためです。「どうせプレイヤーが見るのはプライマリサーフェスだけなんだから、直接ここにキャラクターを描いていこうぜ」などと設計してしまうと、描いている途中の絵がプレイヤーに見えてしまい、これがチラつきの原因になります。これを回避するために、まずはオフスクリーンサーフェスにゲーム画面を構築し、描き終わったらプライマリサーフェスへ転送するという手法をとります。
ここで重要なのは、ファイルに保存されている画像を直接オフスクリーンサーフェスへ転送するのではなく、一度メモリへため込んで、そこから転送するという点です。これは、ファイルから画像を転送するよりも、メモリから画像を転送した方が遙かに処理が軽いからです。ゲーム画面は1秒間に数十回更新されますので、なるべく描画にかかるコストは抑えた方が良いというわけです。もし、毎回ファイルから画像を転送していたりするとコマ落ちが発生してしまいます。
ちなみに、ここで「転送」という言葉を多用していますが、ここで言う「転送」とは「画像ファイルから読み込んだ絵を描画するためにデータをコピーすること」を意味します。画像ファイル→「読み込み」→メモリ→「転送」→オフスクリーンサーフェス→「転送」→プライマリサーフェスという関係になります。
Contributions