goo blog サービス終了のお知らせ 

星田オステオパシー

施術者は引退しちゃって美味しいバイト生活をしつつプログラミング学習とか自由研究をして野垂れ死ぬまでの備忘録

Love2Dで桃鉄ライクゲームを作るという野望014 ちょっと整理

2025-04-07 15:26:45 | プログラミング
いや、ジワジワやってるんですけどねぇ・・実は先週火曜日に久々のぎっくり腰をやってしまいましてね・・寝たきりとかじゃないんですけど、長時間立ちっぱなしとか座りっぱなしとかが駄目でして。バイトを休まずに続けながら治してるんで、なかなか回復しきらなくてねぇ・・

という状態で書いてるので、あんまり進んでないわけですね!

さて、前回。カードを使用する際に、メッセージを表示する司令を出したところで一旦停止しメッセージが消えるまで待って処理を続けたい・・って部分でコルーチンを使うか?いや、使わない!って事になったところまでした。そこでPer様に提案された仕組みを組み込んで検証しようと思ったんですが、カードの表示が出来てないじゃないか・・って事になって、そこを解消するところからです

 サイコロを振る前にカードを選んだところ・・こうなる。画面にはデバッグ用に表示させてる手持ちのカードが表示されてるので、ちゃんと交通系のカードだけを選り分けて専用テーブルに名前が格納されてるはずなのに、右枠のカード一覧が出るべきところが空なんですよ

 原因が分からなかったので、良いタイミングだしここでコードの整理をする。カードの表示に関しても、Current_card_beforeに入れてる時点でCard.nameの文字列だけを入れてたのだけど(MenuState.itemsが文字列を要求する仕組みなので)、実際にカードを使う場合には当然Cardテーブルをそのまま入れないといけないわけで・・今更仕組みを変えるのはあまりにも面倒なので、Cardテーブルは大文字のCURRENT_CARD_BEFOREという変数を作って格納し、表示をするとき用にCurrent_card_before_namesという変数に名前だけ入れるというね・・(Selectedの数を合わせるためでもあるが)・・これぞ富豪プログラミングやな!
 整理の結果・・

 テーブルに入るようになったけど、無限にカードが追加されるという事態が発生。これは、Per様に相談したらカードの更新はLove.updateでやろう!というのを鵜呑みにしてUpdate_all()を入れた結果です

 デバッグ用にFLAGSに入れてたCURRENT_PROPERTYを元通りに外に出したり・・

 表示のためのデータUpdateをどのタイミングで、どれを行えば良いのかを検証したりして

 ステートマシン用のCurrentMenuに入れるキーワードも命名規則がバラバラだったのを統一して

 それぞれの表示用座標などを書いて

 MenuState自体も整理

 到着後に使うMenuStateAfterも整理


 まだ未実装のメニュー表示関数をとりあえず名前だけ書いておき

 MenuStateを更新するのに不要な部分を取り除き(ここでまるごと更新してたのがカード名が出ない理由の1つだった)

 書かないといけないと(現時点で)分かってる関数もメモしておいて

 結果、ようやくサイコロを振る前にメインメニューで「カード」を選んだら手持ちの交通系(移動前に使うカード)のカードが表示されるようになった〜。
 あ、でも待てよ・・?モモテツって、カードを使う場合「カード→つかう→カード選択」だったか「カード→カード選択→処理選択(つかうかすてる)だったか?うーん、どうしたもんかなぁ・・

 ってところで続きは次回です。あ〜早く腰を治して長時間いじりたいぜ!

つづく