座標ズレ修正
by
cutfloss
04/29 [2026/04/29 22:21:36]
PC、タブレットのタップずれ補正し、ブーストボタンを押せるようになる
@@ -1,6 +1,6 @@
/*
- * @title 陣取り・エディタ
- * @description 定型文を6つまで編集・保存します
+ * @title 座標ズレ修正パッチ
+ * @description PC、タブレットのタップずれ補正!
* @private
*/
javascript:(function(){
/*
* @title 座標ズレ修正パッチ
* @description PC、タブレットのタップずれ補正!
* @private
*/
javascript:(function(){
const canvas = document.querySelector('canvas');
if(!canvas) return alert('Canvasが見つかりません');
// 本家の入力イベントを横取りして座標を補正する関数
const fixEvent = (e) => {
const rect = canvas.getBoundingClientRect();
// Canvasの解像度と表示サイズの比率を計算
const scaleX = canvas.width / rect.width;
const scaleY = canvas.height / rect.height;
let clientX, clientY;
if (e.touches && e.touches.length > 0) {
clientX = e.touches[0].clientX;
clientY = e.touches[0].clientY;
} else {
clientX = e.clientX;
clientY = e.clientY;
}
// 余白(rect.left / top)を引いて、スケールを掛けることで「Canvas内の正確な位置」を出す
const correctedX = (clientX - rect.left) * scaleX;
const correctedY = (clientY - rect.top) * scaleY;
// ゲーム側の内部変数(mouse.x, mouse.yなど)に無理やり書き込む
// ※client-game.js内の変数名に合わせる必要があります。
if(window.game && window.game.mouse) {
window.game.mouse.x = correctedX;
window.game.mouse.y = correctedY;
}
};
// 全ての操作イベントに対して補正をかける
['mousedown', 'mousemove', 'touchstart', 'touchmove'].forEach(type => {
window.addEventListener(type, fixEvent, true);
});
alert('座標補正パッチを適用しました!スティックの位置を確認してください。');
})();
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。