そして、それを直すのもワ・タ・シ☆ マオです。
前回振り出しに戻ったと思われたソースコード。
何処で問題が起きているか分からなかったので、素のコードに少しずつ書き換えをしてテストをする作業をやってたんだけど、ようやく原因が掴めた。
思い付いたコードのアイディアは問題無かった。
それを表現したコードの流れは問題無かった。
何が問題だったかって?
掛け算を間違えたのが問題だった!orz
普段から二次元的な処理はよくやるんで慣れてるんだけど、三次元的処理って過去にやったかやらないかって感じで、慣れてないんだよね。
縦×横×高で考えなきゃいけないのに、次元が一つほど頭の中からすっぽ抜けてたのよね。
しかも、流れが問題無いソースコードだから、いくら見直しても問題に気付かないという罠。
数字を二箇所直すだけでスルスル動いちゃったよ。
さて、問題が無いかデバッグしてたら、新しいバグが発見された。
最近バグ報告が無くなったので、UgoCraftは完璧ですと思ってたら、自分で発見しちゃったよ(ZapZapZap)
マルチ特有のバグなんだけど、Ugo objectがブロックにめり込むというバグ。
鯖側では問題なく処理されてるようなので、同期関係で問題が起きてる模様。
これ簡単に直せる気がしない。
アップがどんどん伸びていくな・・・。
全てがうまく行くとは限らない。マオです。
大きな問題を抱えている、UgoCraft君の続き。
寝てたらアイディアが浮かんで、ソースをかなり書き換えたけど、原因不明のめり込みバグが発生して残念ながら振り出しに戻る。
でも、アイディアは良かったので、この方向で進めば問題が解決しそうな予感はあるんだ。
ダメだったら、またソース破棄して寝て考える方向で・・・。
私の作るプログラムでは、ソースの破棄とかも良くある事で、気に入らなければ1から作り直す事もあったりする。
その方が強くてニューゲームっぽい感じで、良い物が出来るんだよね。
Ugoは結構長持ちしている方だ。
普通だったらもう3回目のニューゲームが始まっている頃である(笑)
一応、Mod学習段階からの積み重ねコードなので、珍しく寿命が長い。
どこまでこのコードは耐えられるのだろうか。
バージョンアップはまだまだ先になるだろうな。
うん、やっぱりね。マオです。
さて、昨日修正したUgoCraft君ですが、前回の動画でやったジェットコースターのドミノ倒し風ギミックが重くなり過ぎで出来なくなりました。
理由は簡単で、接触処理が重くなり過ぎた。
昔は単純な処理で接触判定できたんだけど、今は複雑な工程をしないと回答に辿り着けないんだよね。
そこまで激しい使い方しないだろうと思ってたら、一番激しく使ってるのは私だったでござる(笑)
これは使い物にならないんで、大改造開始だな。
ってな訳で、バージョンアップは当分先になりそうです。
うまく解決できたら、ジェットコースターのセーブデータを配布しようかねぇ。
やっぱり、寝れば直る。マオです。
UgoCraft20120702を修正しましたー。
修正内容はUgo object同士の接触判定ですり抜けてた問題を直しました。
いやー、これ直せないと思ってたんだけど、2日寝たらアイディアが浮かんできまして、何とかなりました。
そういえば、開発で接触判定の刷新の時も寝て思いついたアイディアを組み込んで、よりステキな物になったんだよな。
もう、起きないでずっと寝ていたい。
一応、暫定対応なので、UgoCraftの運用によっては重くなる人もいるかもしれない。
でも、そこまでUgoCraftを活用している人なんていないと思っているので、大丈夫だと信じている。
もし重くなった人がいたら、配布ページにでもコメントしとくれ。
出来れば、重くなる状況の画像なんかが貰えたら、楽が出来そうである。
動画を作って次のバージョンを出したかったのだが、いまいち気が乗らないので見送る事にした。
やはり時間が取れないので、いい感じに物事が進められない。
まあ、時間が取れない原因は迷宮に行かなきゃ(略)
直せる気がしない。マオです。
どうも軽減処理の弊害が出たようで、Ugo object同士の接触判定が死んでしまい、擦り抜けが発生しているようです。
しかも、前回の一石三鳥のお陰で、咄嗟に思いついた解決策も封じられるという、多段孔明の罠が発生。
困ってしまった。
何か良い方法があればいいのだが、今の所思いつかない。
とりあえず、放置の方向で・・・寝れば良い方法が思いつく事が多いので、それに期待する。
次回バージョンアップのバグ取りをしてたのにorz