何のイカサマもないと分かりきっているダイスを
2 回振ったところ、連続で 3 の目が出たとする。
すると 3 回目にダイスを振る際に「 3 の目はもう 2 回も出たから
次は 3 以外の目が出るだろう」と無意識のうちに考えてしまう。

確かに 3 以外の目が出る確率は 5/6 で 3 の目が出る確率の 5 倍である。
しかしながらそれは他の数字に対しても同様に言えることであり
ダイスを 3 回振るという試行において 3 回目の試行が 1,2 回目の
試行の影響を受けることはあり得ない。

試行を果てしなく繰り返して、結果を平均するとやがて、
ある一定の結果に落ち着くのは事実だ。
ダイスの場合はそれぞれの目の出現頻度は均等に 1/6 に近づいていく。
しかし、試行の結果が常に平均値に近づくわけではない。
このような誤解は平均の法則と呼ばれているらしい。

もちろん頭の中では分かっているのだが、ゲームなどにおいて
自分にとって運の悪い状況が続くと
「これだけ悪い結果が続いたのだから次はよい結果が出るに違いない」
といった考え方をついしてしまう。

この後も悪い結果が続くと、腹立たしさが増してくる。
腹立たしさのゆえんはこういった無意識のうちの誤解によるものでもありそうだ。

//

前回日記の続き

直接移動距離を 22 にするとちょうど 6 フレームで 1 マス移動
でなおかつ、ぎこちない移動を最小限に抑えることができそうだ。

また、直接移動距離を 128 以上にすると問題が起こる。
キャラクターが移動中であるかどうかの判定は
論理座標 * 128 と実座標との比較によってなされているためだ。
よって 1 フレームで 1 マス移動してしまうと
Game_Player クラス update メソッドの「前回移動中だった場合」
の部分が実行されなくなってしまう。

高速移動は見ていて面白いがこの点には注意が必要だ。

コメント

nophoto
ジュニー
2006年6月23日15:52

初めまして。
こちらでは微妙な速度、すでに試行済みです。
ソースコードを大幅に変えて処理させています。
実質、無段階で、一番速い速度というのも存在しません。
実際は使っていませんが速度が一定値以上の場合は
繰り返し処理による1フレームに数回判定といった感じです。

トリアコンタン
トリアコンタン
2006年6月24日1:05

初めまして、ジュニーさん。

微妙な速度調節なら、それほどソースを改変せずとも
実現できるように思います。
例えば、私が挙げた方法の場合は移動距離の僅かな違いが問題になりますが
実際の画面上での移動距離は 1 フレームごとに 5 6 5 6 5 5 と
となりますので普通にプレーしていて違和感に
気付くことはまずないかと思われます。

超高速移動の場合は仰るとおり、繰り返し処理を用いるなどの
相応の改変が必要になりそうですね。

nophoto
ジュニー
2006年6月24日11:39

ごもっともです。
ですが、説明には無かったのですが、
微妙な速度調整を実現させるためだけがスクリプトの構造を
変更する要因ではありません。
実際にはドット移動だったり、全方向移動だったり、
何より、処理速度の改善が目的です。

トリアコンタン
トリアコンタン
2006年6月25日0:05

なるほど。
確かに処理速度に関しては、本格的に改善を望むのなら根本から書き直すくらいの
勢いで改変することも必要になってくるでしょうね。

最新の日記 一覧

<<  2025年7月  >>
293012345
6789101112
13141516171819
20212223242526
272829303112

お気に入り日記の更新

最新のコメント

日記内を検索