FLASH迷路の件。
ゴールデンウィークにいじって、諦めていたので。
シルバーウィークにもいじってみる。
以前のバグは、もう何をどう頑張っても原因が分からないので。
放棄する事にしました。
もともと、この script はドラクエで言えば、地形マップ用の移動制御。
しかしだ、迷路の場合、隣のマスも移動可能範囲だが、間に壁があり、直接移動不可。
つまり、もとからマップデータの情報が次元的に上昇している。
簡単な移動チェックで切り抜けられない、のだろうと判断。
それでも、proj. のくせに one to one onto 写像による写し取りで乗り越えたとは思っていたが。
(以前も書いたけど分かりやすく言えば、融通のきく暗号化、という意味)
で、今回は。
プレイヤー操作の判定、と、移動チェック、と、移動描画、を全部、区切ってみる。
前のは、最初の判定から全部、一連、流れでやってた。
だからなのか、どこが不具合なのか、こちらも判断つかなかった。
そして、移動チェックの変更。
前のは、操作から、次の座標を調べて、”そこは現在地から行ける場所なのか”を判定してた。
何か難しい事やってるように聞こえるがそうでもない。
現在地バックアップとって、実際に動かして、逆算する。
いや、やってる事は簡単なんだが、このシミュレーションという作業が実は邪魔なんじゃないのか。
計算フローの意味でも、私の思考フローとしても。
なので、現在地から行ける方向はどこか、をまず調べる、という物に変更。
何を当たり前の事を言ってるんだと思われるだろうが、そうでも無い。
移動してから是非を調べる、のと、あらかじめ全ての是非を調べておく、
のでは、コマンド量も計算量も全く違うのだから。
マップデータから引き出す情報量もとたんに増える。
しかし、確実なデータだけを積み重ねていけるし、問題点がどこにあるのか、も分かりやすくなる。
そこに行けるならそこに行く道が存在する、
道が存在するなら移動しても構わない、
という当たり前だがヘンテコな数学的思考を基に設計してきたが。
(というか、大概プログラムってのはこの数学的定理の性質を利用して設計される)
純粋に人間的直感で思考していく script になっていく。
分かりやすい例えで言えば。
人は無限大を意識できるが、プログラムはできない。
そこで、数学の定理を使い、xが無限大に行く時、有限値tに対して不等式が成り立つ、
というのを利用し、無限大の状況を再現する。
人間の思考をプログラミングするほうが、実はかなり難しい。
ゴールデンウィークは、そんな数学人の私ゆえのミステイク、だったのさ。
という言い訳。
こんな長々と語っているのは、ぶっちゃけ、その script が完成してないので、
憤まんをぶちまけているのだ、というオチ。
本当に、判定全部を細切れにして、デバッグしようかとも思ったが、
そこまでの気力も湧かず。
かといって、どこまでの判定を一括りにしたら良いのかも判断できず。
指が止まっております。 助けてください。