星田オステオパシー

Love2Dで桃鉄ライクゲームを作るという野望006 行ったり戻ったりしたい

 サイコロを振った後は、出目の合計分だけ移動するわけだけど、気が変わって戻った場合には減った歩数カウントを戻さねばならぬ。とりあえずは残り歩数を画面に表示しないといけないので・・なんかFormat的なものありますか?と尋ねると・・あるんだな、コレが

 一応書式。数字は桁数か。

 引数はオプショナルで色々とできそうだけど・・とりあえずxyだけでも表示できるので余計なことはしない

 FLAGS.move_numにFinal出目の合計を格納したいのだけど、なんとLuaには関数Sumが無い!書きますか〜

 さしあたって移動中に残り歩数を表示する部分をLove.drawに書く

うほほ、出たねぇ

 ではもと来た道を戻った場合に残り歩数を戻すために経路を管理するWalk_tableを作る

 歩数を管理する関数Walk_countを作る。引数は次に狙う座標で、これが管理テーブルの最新部分にあるならば歩数を戻して最新部分を消去する、と。ロジックはこんな感じだと思うんだけど、テーブルメソッドの書き方がわからないので、この状態でPre先生に提出する

 あ、こう書くのか

 なんと(今更だけど)+=も使えないという

 修正されたコード。なるほど、Walk_tableが空の場合を想定して条件式が追加されてるのと、Insertではテーブルのケツに追加されるのでチェックのためには#walk_tableで要素数を出すことで最新部分を示すと
 あと、頼んでもないのにMove_numが0になった場合の処理も書いてくれてごっつぁんです。なるほど、歩数0になった場合の処理もここに書いて良いのか・・言われてみれば

 ところがこれではうまく行かなかったんですよね!後戻りをしても歩数カウントが戻らない・・なぜだ・・

 デバッグ用にテーブルのケツを表示するようにしてみるが・・ちゃんと追加されてるけど、戻った時に消えてない!

 追加するNew_coordinateも書き出すようにしてみるが・・ちゃんと補足されてるよねぇ・・なんで・・ハッ!?あ、そうか・・Current_coordinateがすでに最新部分に追加されてるから、チェックスべきは最新−1だった!(と言うのを気づくのに30分くらいかかりました)

 インデックス指定を−1しまして・・

 よっしゃ!ちゃんと後戻り出来るようになってる!
 後はMove_onフラグがFalseになった場合にサイコロも消して、新たに「到着」のフラグと処理を書くだけだな!

 うーん・・・もしかして・・後はただただデータを作っていくだけなのか。どうすっかなぁ〜・・ゲームなんて無限に存在するわけで誰にも遊ばれるアテもないクズゲーを作るのに時間をかけるべきだろうか?
 作る値打ちがあるとしたら、例えば「ゲームブックツクール」とか、まあ「モモテツライクゲーツクール」みたいなツールならまあアリかも知れんけど(※作れるならばだが)。
 それよりかはMatlibとかRacketを使った数学の学習をすべきじゃないかなぁ・・もしくは他のゲームエンジンの使い勝手のチェックとか。

 まあ、とりあえず物件の売り買い、カードの実装とか一通りのシステムをつくるところまではやりまっけど!
  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

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

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