よくわからない解説
ではサンプルコードを見ていきます。
グラディウスのオプションは、本体(自機)の通った跡を遅れて通りますよね?
ですから、こういった処理は、自機の座標をいくつか記憶しておき、古い座標の所へオプションを配置してやればいいのです。
まず、キャラクタ(自機)の座標を配列でいくつか確保してやります。
このとき、一番新しい座標をcx[0],cy[0]とし、一番古い座標をcx[CMAX-1],cy[CMAX-1]とします。
ゲーム中、キー入力があり、自機の座標が変更されようとしたら、cx[0],cy[0]〜cx[CMAX-2],cy[CMAX-2]の中身を
cx[1],cy[1]〜cx[CMAX-1],cy[CMAX-1]へコピーします(つまり1つ後ろへずらす)。
それで、cx[0],cy[0]の値を変更してやればいいのです。
座標を一つ後ろへずらす時、
こんなふうに前からコピーしてしまうと、cx[0]の値がcx[1]へ、cx[1]の値がcx[2]へ・・・というように
全て同じ値になってしまうので、やめましょう(爆。ちゃんと後ろからコピーしていきましょう。
で、自機の座標跡を作っていったら、次は表示ですね。
オプション用の画像は自機の座標跡の古い所から表示してやります。
まぁ、優先度の問題なのですが、先に描いた方が画面の後ろに表示されますよね?
なので、新しい座標の所程、後で描いてやります(自機は一番最後)
上のようなプログラムだと、
80,60,40,20番目の座標へ順番にオプションを配置し0番の座標へ自機を配置しています。