星田オステオパシー

Love2Dで桃鉄ライクゲームを作るという野望003 マップの上を歩きたい

風邪からようやく回復したのでLove2Dでの桃鉄ライクライクゲー作りの続きをやっていくか!

 まず、新たなマップデータに合わせたマップチップを用意します(すっかりやり方を忘れてて結構時間がかかった)。左から、マップデータの0(草原)、1(鉄道縦)・・と順番に並べてAtlasデータとしてImgフォルダにブッ込む

 AtlasからQuad形式でビットマップを取り出して設定。ちなみに、何故かBodhi-Linuxで動かしているSublimeテキストエディタでは日本語(というか全角文字)入力をするとバグった表示になるので英単語で文字を打ってます。せっかくLove2Dでは漢字も使えるってのに!不思議な事にBunsen-Linuxでは全然大丈夫です。

 Quadをテーブルに収納
 Playerテーブルを作って
 表示判定にも使うフラグのテーブルFLAGSを用意する。

 更に、メニューの検証でカードを表示させたいのでカードの仮データ。駅(都市)にある物件の表示もしたいので1駅分の仮物件データも用意する。まあ、内容はテキトーで。

 メニューで表示する一覧を、カードテーブルから.nameにて抜き出して文字列のテーブルにするためのコードを書いて・・・(Table.insert関数の書き方が独特で面白いですね。メソッド風の書き方は統一されてればなるほど分かりやすいな

 ここらへんはメニュー表示なんだけど、まずはmainMenuフラグをFalseにして、Move_onをTrueにしてPlayerの表示と移動をやってみよう

 Mapインデックス43が「駅」で、そこにPlayer1(赤いキャラ)を立たせてみる。デフォルトではビットマップの左上が0.0になって、そこからxyの増加方向である右下に向かって広がるグラフィックなのでPlayerキャラのように40x80のグラだとyの半分の部分を指定しないとうまく重ならないので、そこんところ注意が必要だな!
 グラの汚さとか駅名の表示どうすんだ?とかは置いといて、とりあえず表示出来てよかった!

 ではMove_onフラグをオンにしてみよう!

 おお、動いた!
 けど!見てるだけでは分かりにくいが・・
 ・上を押すと右、下を押すと左、右を押すと下?、左を押すと上?に動いてしまう。え?Love2Dのバグか!?とまず他人を疑ったが言うまでも無く私のミスです。
 ・草原部分(マップの0)には入れない様に書いたはずなのにガンガン入れてるし、逆にある部分から右に動けない

 おかしいところは大体座標計算部分だな・・とは思ったんだけど面倒なので全部のコード(250行くらい)をまるごとPlerplexity先生に放り投げて「どこがおかしいんスか?」と聞いてみる。うーん・・・?

 見比べてみると・・Luaの添字が1から始まる問題もあるけど、そもそもxyが逆になってるじゃないか!

 変更したところ、バッチリ想定通りの動きになりました!やったぜ!

 というわけで、マップ上を動けるようになるところまではOK。続いてはmenuフラグをTrueにしてメニュー表示部分を書いていくぜ!



  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「プログラミング」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事