もずポンへの長い道のり ー 8 Mac OS Xの謎

このもずポンってゲームは、実は色々と実験的なことをやっているんだけれど(といっても私のレベルでって意味だけれど)、そのたびに謎が色々と発生してた。特にMac OS X上で。


まず、Mac OS Xの標準ブラウザSafari上で遅いという現象。もずポンは秒60コマで動かしてるんだけれど、どうもそれがSafariは気に入らないらしい。おそらく、広告のFlashがCPUパワーを使い尽くすのを防ぐためにリミッターか何かが仕掛けてあるんじゃないかと邪推。

次にGoogleが誇る軽量ブラウザChromeは、ボタンの上でマウスポインタの形が矢印のまま変わらない。変なの。

また、もずポンは自分自身がフォーカスを失う(他のアプリケーションが手前にきたり、ウィンドウ内の他の部分をクリックしたりする)とポーズ状態になるんだけど、Chromeではポーズにならない。なんでイベントが来ない?

まあこの辺は色々と仕方がないのかなあと思うけど、次のはさらにワケがわからない。

もずポンは基本的にマウスだけで遊べるんだけど、Flashでマウスの位置を検出できるのはゲームが表示されている範囲だけ。マウスポインタがこの中にあれば「もずもず」が移動するけど、その外に出れば動かなくなる。

他のブロック崩し系のゲームとか、マウスで自機をコントロールするゲームで試してほしいんだけど、だいたいどれも画面からマウスポインタが外れるとキャラが動かなくなるはず。

これが嫌だったので、HTMLのほうに細工してJavascriptでマウス位置を検出し、それをFlashで拾うようにしてた。余談だけどマウスポインタの位置取得なんて基本的なことがブラウザ事に違うとか、狂ってるとしか思えない。マイクロソフトがある限りHTMLのバージョンが5になろうが10になろうが互換性なんて夢のまた夢なんじゃなかろうか。

それはともかく、Windows上でこれを動かしたところ、実に見事に意図したとおりに動いて小躍り。やれやれ良かったと思ってMac OS Xで動かしてみるとあら不思議。なんと設定してある再生速度を無視してぶっちぎりの高速早送りゲームに。秒100コマとかそれ以上の速度でギュンギュン動いてゲームにならん。なんぞこれ。

どうもFlash内部からJavascriptの関数を呼び出して値を受け取るとMac OS Xの世界では再生フレームレートを無視するのが常識らしい。なんなのそれは。なんなのそれは。二回言ってみました。なんなのそれは。三回目。

仕方ないから呼び出しを別のタイマーで実行したらそれっぽくなったけど、ちょっとぎこちない。一番まともに動いたのはFireFoxでありました。

それにしてもFlashのプレーヤー自体は共通なんじゃないの、これ。バージョンは同じだし。ブラウザによってここまで動作が違うってのも、嫌がらせとしか思えないんだが。みんなが、みんなが私に嫌がらせを!

いやいや。そこまで世間は悪意に満ちてないから。

みたいな苦労をしてできたんだけど、そこそこ遊んでもらえたみたいで作って良かった。報われるよね、やっぱし。ハイスコアも、私には抜けそうにないしね(笑)。

コメントは受け付けていません。