いや、ジワジワやってるんですけどねぇ・・実は先週火曜日に久々のぎっくり腰をやってしまいましてね・・寝たきりとかじゃないんですけど、長時間立ちっぱなしとか座りっぱなしとかが駄目でして。バイトを休まずに続けながら治してるんで、なかなか回復しきらなくてねぇ・・
という状態で書いてるので、あんまり進んでないわけですね!
さて、前回。カードを使用する際に、メッセージを表示する司令を出したところで一旦停止しメッセージが消えるまで待って処理を続けたい・・って部分でコルーチンを使うか?いや、使わない!って事になったところまでした。そこで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つだった)

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

結果、ようやくサイコロを振る前にメインメニューで「カード」を選んだら手持ちの交通系(移動前に使うカード)のカードが表示されるようになった〜。
あ、でも待てよ・・?モモテツって、カードを使う場合「カード→つかう→カード選択」だったか「カード→カード選択→処理選択(つかうかすてる)だったか?うーん、どうしたもんかなぁ・・
ってところで続きは次回です。あ〜早く腰を治して長時間いじりたいぜ!
つづく