ゲーム開発29:マップ表示

名称未設定 1前回読み込んだマップデータを表示させました。

スプライト表示用のモジュールは既にあるので、並べて表示するだけです。とりあえずマップデータのレイヤー0を背景、レイヤー1をキャラクタ配置として、各所の初期化部分を書き換えました。

マップデータの読み込みは以下のようになります。

MapData= new CMapData;
MapData->File("stage01map.fmf");

そしてマップ表示はこんな感じ。map_chip=255は透明なので表示しません。

for (i=0; i<MapData->GetHeight(); i++) {
 for (j=0; j<MapData->GetWidth(); j++) {
  map_chip=MapData->Get(0, j, i);
  if (map_chip!=255) {
   g->DrawSprite(spr_no[map_chip], (j*48), (i*48), 0.9f, 0, 0);
  }
 }
}

ただ、これだと表示されない場所まで描画するので、クリッピングする必要があります。あと画面スクロールにも対応させないとね。

上記の処理で表示する事が出来ました。んーやっぱりブロックのグラフィックが不自然な気がするなぁ…

表示はしたものの、当たり判定が入っていないので、今はゲーム開始直後に下に落ちてゲームオーバーになりますw

そんな訳で、次回は大ざっぱな当たり判定を入れてみます。

コメントを残す

メールアドレスが公開されることはありません。