4

私は過去数日間、最初のHMLT5ゲームのプロトタイプに取り組んできましたが、デスクトップとモバイルの両方で動作させる必要があります。問題は、私は一般的にWeb開発に慣れていないということです。

キャンバスに対するマウス/タッチの位置を取得するには、e.layerXまたはの使用を停止し、このメソッドe.offsetXの使用を開始しました。私も追加しました。<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0">

しかし、その後でも、画面を回転させるとタッチ座標がオフセットされ、Dolphinも非常に奇妙な方法でタッチを処理します。

これに対処する一般的な方法はありますか?私はテクノロジーに精通していないので、jQueryなどを使用しますか?

編集:また、pageX screenXすべてclientX同じ値を返します。理由はわかりませんが、使用しe.touches[0].clientXました。

Edit2:私はそれを解決したと思います。findPos(obj);画面が回転した場合、もう一度電話する必要があったことを忘れました。メタタグなしでテストしたくないので、とりあえずそのままにしておきます。

4

1 に答える 1

3

これを (JQuery 経由で) 使用して、キャンバスに相対的なキャンバス内のマウスの位置を取得します。

canvas.mousemove(function(e){
    mmouseX = e.pageX-canvas.position().left;
    mmouseY = e.pageY-canvas.position().top;
}

Android のデフォルト ブラウザで試してみたところ、デスクトップだけでなく正常に動作しました。ただし、ドルフィンで試したことはありません。

于 2012-10-03T15:05:31.030 に答える