Home > 成長期 > 第123回 戻ってこないプログラム

第123回 戻ってこないプログラム

台風が近づいてきた9月上旬。

会社から即撤退命令が出ました。

周りのチームがウキウキワクワクして、
早めに退社している中で、

イライラしながら開発している自分のチーム。

台風よりも、締め切りが怖いです。

当然、帰る時には暴風でした。
電車が動いていて良かったよ・・・・・・・。

前回からの続きで、間に合う間に合わないの計算ですが、
簡単な方法で一番最初に計算するとしたら、
自分の座標の片方に来る時間を計算する事からでしょうか。

2DならXY座標ですが、擬似3DなのでXZ座標とし、
自分のいる位置のXかZの座標を固定する事で、

回り込むか前に進むかを判断します。

もちろん最短距離は向かってくる物体の直線に
対する垂線での距離ですが、
それに間に合わなかった時に計算すると重くなるので、
とりあえずこっちが優先かと。

ただし気をつけないといけないのは、

かなりの距離で交じり合わない場合、
ループ等の処理で計算すると、

戻ってきません。

物体に摩擦等があって、減速するなら計算ができますが、
摩擦がなくて減速しない場合、間に合わないなら、

永遠ループです。

変数がオーバーフローして、やっと止まります。

膨大な時間を算出してくれて、
膨大な時間を使ってくれるというセレブ処理です。


次世代機のスペック限界に挑戦してみますか?

そんなわけで計算する前に条件文で、
どちらを計算するかを決めておくのが吉です。

というか決めておかないと痛い目に合います。

それが決まれば、単純な移動ならスピードと距離で、
いろいろな処理が入るならループで計算。

ループでもたいした距離にならないので、
短いと思いますが、ある程度の距離、
もしくはある程度のフレーム以上なら処理を
止めるというのを入れておいた方がいいですね。

何ごとも保険が大事です。

保険がバグっている事も多々ありますが。

それで出た計算で、間に合う間に合わないかを判定。

間に合わないなら回りこむ処理で
再び間に合うか間に合わないかを計算。

間に合うなら、物体とその地点の間、
もしくはいい感じの部分を出して、こちらも計算します。

これも微妙でして、下手すると何度も計算し直さないと
ダメなハメになるので重たくなります。

プログラム内でループどころか、

計算し直しループに入ります。

失敗すると、かなり重いです。

処理棒が振り切ってしまいます。

なので、ある程度の地点を決めて、
それが間に合わないなら大きく迂回。
それが間に合うなら、もう一回ぐらい判定する
ぐらいでいいと思います。

微妙な動きよりも処理落ちの方が問題。

というか、微妙な動きも問題ですが、
一から百まで相手にしてる余裕は

処理的にも期間的にも時間ありません。

余裕があったら修正します。

なかったら「仕様」という言葉を使いましょう。

と、まあ、簡単に書きましたが、

結構、気にいる動きにするのが難しいです。

微妙な動きというのも限界がありますので、

どう見ても機械的な動きでは問題があります。

それを直す為には、うまいプログラムを組むか、
何度も計算するかしかないですが、

何度も計算する余裕はありませんし、

うまいプログラムを組む腕はありません。

というわけで次回は、その例の話と妥協点を書こうかと。

どちらにしても作り手側は、
何度やっても納得する動きを作るのは難しいんです。

他の人から見たら、うまく動いていたとしても。

でも・・・・・他の人から見て、
うまく動いているのが一番なんですけどね。


はたして作り手側が正しいのかはどうかは

微妙な部分ですから。

                          (横・横・縦!編へ)

↓記事がおもしろかったらクリックおねがいします。
プログラムランキング [人気blogランキング]  FC2 Blog Ranking  にほんブログ村 IT技術ブログ プログラム・プログラマへ

Comments:0

Comment Form
Remember personal info

Home > 成長期 > 第123回 戻ってこないプログラム

Search
Feeds
Meta

Return to page top