昨日書いて、今日もかくという異例の更新頻度を達成したぞ!ヽ( ´¬`)ノ ワ~イ !! 動機などは昨日のブログに書いたが、便利な hspdx を使わずにスプライトを動かしてみたいと思う。 今日はスプライトの細かな仕様を決める前に、実際に処理速度が十分出るかを検証してみた。 基本的には、昨日のプログラムと同じで、パーツ画像をバッファに読み込み、それを重ね合わせてコピーしていく。 昨日は、パーツ画像全体を重ねたが、今回は、キャラ1個分の 24x32 ピクセルだけを重ね合わせて、1個のスプライトを描画する。 そして、そのようなプロセスを繰り返して、スプライトを縦横に画面いっぱいに並べて配置した。 1フレームは 330 ミリ秒だ。 フレームごとに、一度、白い四角で塗りつぶしてからキャラを1つずつ書いている。 それだけだと、画面がちらつくので、ダブルバッファリングをしている。 具体的には一度バッファ(id=9)に書いてからそれをウィンドウ(id=0)にコピー転送した。 おおまかなプログラムはこんな感じだ。 この処理の前に昨日のパーツ画像の読み込みとバッファ(id=9)の初期化処理をしている。 *ScSpTest1 dim frameIdx, 4 frameIdx.0 = 0 frameIdx.1 = 1 frameIdx.2 = 2 frameIdx.3 = 1 for animeFrame, 0, 4, 1 gsel 9 // バッファにかく color 255, 255, 255 boxf 24 * 0, 32 * 2, 320, 480 for spX, 24 * 0, 320 - 24, 24 for spY, 32 * 2, 480, 32 for partsIdx, 1, 9, 1 pos spX, spY gmode 2, 24, 32 // 下向きの歩行アニメーション gcopy partsIdx, frameIdx(animeFrame) * 24 + 0, 0 next next next gsel 0 // バッファからウィンドウに転送 pos 0, 32 * 2 ...
ゲームやドラマ・アニメの感想や、何となく思ったことを不定期に書いてます。