WASD操作導入
by
cutfloss
06/28 [2026/06/28 23:37:20]
WASD操作が出来るようになるぞ!
-
/*
* @title WASD操作導入
* @description WASD操作が出来るようになるぞ!
* @private
*/
javascript:(function(){
// 既に適用済みなら何もしない
if (window.__wasdPatchApplied) {
alert('WASD操作はすでに有効です!');
return;
}
// 既存の keydown / keyup リスナーを上書きせず、
// WASD → ArrowKey として変換するイベントを追加する方式
const WASD_MAP = {
'KeyW': 'ArrowUp',
'KeyA': 'ArrowLeft',
'KeyS': 'ArrowDown',
'KeyD': 'ArrowRight',
};
function fakeArrowEvent(type, arrowCode, original) {
const ev = new KeyboardEvent(type, {
code: arrowCode,
key: arrowCode.replace('Arrow', ''),
bubbles: true,
cancelable: true,
repeat: original.repeat,
});
// 元のイベントをキャンセルして矢印キーイベントを発火
original.preventDefault();
window.dispatchEvent(ev);
}
window.addEventListener('keydown', function(e) {
const arrow = WASD_MAP[e.code];
if (arrow) fakeArrowEvent('keydown', arrow, e);
}, true); // capture phase で先に捕まえる
window.addEventListener('keyup', function(e) {
const arrow = WASD_MAP[e.code];
if (arrow) fakeArrowEvent('keyup', arrow, e);
}, true);
window.__wasdPatchApplied = true;
console.log('[WASD Patch] WASD操作を有効化しました');
})();
-
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。