enchant.jsで右クリックを使いたい

enchatnt.jsではマウスの右クリックはサポートされていないようです。右でも左でもクリックは同じ扱いで処理されます。そして右クリックするとブラウザのメニューが表示されてしまいます。

でも右クリックが使いたい!!

ゲームで使うつもりだったのに出来ないのは困る!!ってことで方法を探しました。

javascriptで書いてみる

enchant.jsでサポートされていないならjavascript直で処理を書くしかない。ってことで検索して出てきたのがこちら

これでメニューの表示をキャンセルし、右クリックに処理を割り当てることが可能になります。

ただし!enchant.jsとは関連がないのでいろいろ困ることが出てきます。

問題1:eventの位置が違う

enchant.jsのtouchstartは設定したゲーム画面内の位置をeventで渡してくれますがjavascriptのmousedownで書くと当然enchant.js内の位置ではないです。ブラウザ内での位置になります。

なので右クリックかどうかの判定だけはmousedownで判断するが、位置に関してはenchant.jsのtouchstartで拾うということになります。

問題2:スマホに対応していない

当然と言えば当然なんだけどenchant.jsはスマホでもPCでも動くようにしてくれているゲームエンジンです。それを使わずjavascriptのmousedownを使うとスマホでは対応してくれません(マウスの処理だもんね)。なのでPCとスマホで処理を変える必要が出てきます。

ということでスマホかPCかを判別しなくちゃいけません。で、やり方を検索して出てきたのがこちら

まとめ

は?プログラムは?

って思われている方もいるかもしれませんがそれは自分でやってください(^^;)実はこれ、けっこう無理くりな感じになってキレイなプログラムにならないんですよ。なのでそんなプログラム見せたくないので自分で作ってください(^^;)

てかenchant.jsの必要な部分を改造する方法が分かればいいんですが今のところそこまでの知識がないので仕方ないです。いつか方法がわかればその時改めてばっちりなプログラムとともに紹介したいと思います(^^;)

コメントを残す

メールアドレスが公開されることはありません。