
とりあえずサイコロを転がすためのコードを書いていこう。
関数Roll_diceの引数Numはサイコロの数、Callbackは使うか分からないけど、一応書いておく。
Dice構造体のRollingフラグをTrueにして
最終的に返す値を一旦Nilに初期化しておいて
Dice.numbersのテーブルにサイコロ個数分のランダム数値を書き込む
こんな感じでどうかしら?

で、こちら添削版。
大きな問題点はTimer.everyを変数に束縛しておくってことかな。こうしておかないと10回サイコロが回った時点で止める手段が無いと。止める部分はTimer.cancel(timer)って部分。興味深いのはtimerにTimer.every以下を束縛してるんだけど、その後に実行してる様子がない。つまり、timerに束縛する段階で実行されてるとしか思えないのだが・・

あ、やっぱり

なるほどね、後に止める操作をするための仕組みなのか

その停止処理、これもLove.update内に書かれてフラグ管理。あんまりUpdate内に書きたくは無いが、自動処理に関してはUpdateに書かざるを得ないか〜。停止したらFinalを更新して、FLAGSについては後で書き足しました。サイコロを振ったら合計値を出してFLAGSの移動可能数に束縛、そして移動フラグTrueって感じで・・Callbackは思いつかないけど一応使っておく。

はい実行!ってあれぇ!?サイコロが動かない!
なぜなんだーっ!って思ったけど、考えたらLove.updateでTimer.update(dt)を書いてなかったわw

で、書いたところ・・こうなりました!ほぼイメージどおりやん!サイコロが止まるとキャラが動かせるようになってる!
後は残り歩数を表示するようにして、歩数を消費して移動、後戻りをすると歩数カウント回復・・ってのを書かないとな!
いや、もうほぼ完成したようなものだな、ガハハ!