ゲームを作るときの基本設計として、「イベントドリブン型」と「ゲームループ型」があります。
「イベントドリブン型」はGUIのイベント、クリックした時は~やキー押した時は~で進むタイプです。
「ゲームループ型」は無限ループ+待つを基本に、「キー状態」でゲームが進行するタイプです。
イベントドリブンだと操作性に難があったり、演出(ウエイト)のしにくさがネックになります。
なので「ゲームループ型」を基本にしていきます。
ゲームループの基本形
ゲームループフラグとは変数
●ゲームループ開始
ゲームループフラグ=1
(ゲームループフラグ==1)でループ
操作取得() # 1
現在シーン→更新 # 2
現在シーン→描画 # 3
描画更新() # 4
0.05秒待つ # 5
●ゲームループ停止
ゲームループフラグ=0
・操作取得() # 1
キー状態やマウスの情報を取得して変数に入れておきます。
・現在シーン→更新 # 2
キャラの移動など。
座標データやフラグなどを更新。
キーの状態で条件分岐するときは#1で取得した情報を参照します。
・現在シーン→描画 # 3
座標データをもとに描画。
レイヤー(可視はオフ)に描画します。
・描画更新() # 4
レイヤーを統合して可視がオンのイメージに画像コピーします。
・0.05秒待つ # 5
仮に0.05秒と書いてありますが、システム時間をみて微調整するといい感じになります。
GUI部品の用意を忘れてた
イメージ部品をいくつか用意しますが、キャラをイメージ部品で表示することはしません。
可視がオンの表イメージが1枚。 これが目に見える画像になります。
そのほかに、可視がオフのレイヤーを数枚、可視がオフの裏イメージを1枚、可視がオフのキャッシュを1枚。
画像コピーや画像合成で重ねていきます。
なんでキャラごとにイメージ作らないのか?とかを次回に書こうと思います。