キーボード縦移動修正
by
cutfloss
06/01 [2026/06/01 00:28:51]
キーボード縦移動時にちゃんとまっすぐになるぞ!
@@ -4,34 +4,34 @@
* @private
*/
javascript:(function(){
- if (window._vectorInvertPatch) {
+ if (window._simpleShiftPatch) {
alert('パッチはすでに適用されています。');
return;
}
- /* 60FPSで動作し、ゲーム本来の移動ベクトルに「逆向きの力」を足し算する */
- setInterval(function() {
- if (typeof inputState !== 'undefined' && inputState !== null) {
- const dx = inputState.dx;
- const dy = inputState.dy;
+ /* WebSocketの送信関数(大元)をハック */
+ const originalSend = WebSocket.prototype.send;
+ WebSocket.prototype.send = function(data) {
+
+ /* 送信データが1バイト(移動パケット)のときだけ中身を見る */
+ if (data && (data.byteLength === 1 || data.length === 1)) {
+ const view = new Uint8Array(data.buffer || data);
+
+ /* 現在ゲームが送ろうとしている数値 */
+ let currentByte = view[0];
- /* 司令官がキーボードで「縦方向(上下)」に入力しているときだけ発動 */
- if (dx === 0 && dy !== 0) {
- if (dy < 0) {
- /* 【真上移動のとき】 */
- /* 本来は右に逸れる(angleByteが64になる)ので、 */
- /* あえて極小のマイナス(左)を足して、強制的に「左に逸れる(63)」状態にします */
- inputState.dx = -0.015;
- } else if (dy > 0) {
- /* 【真下移動のとき】 */
- /* 本来は左に逸れる(angleByteが191になる)ので、 */
- /* あえて極小のプラス(右)を足して、強制的に「右に逸れる(190)」状態にします */
- inputState.dx = 0.015;
- }
+ /* 【真上移動のとき】ゲームが64(右逸れ)を送ろうとしたら、63(左)に強制書き換え */
+ if (currentByte === 64) {
+ view[0] = 63;
+ }
+ /* 【真下移動のとき】ゲームが191(左逸れ)を送ろうとしたら、190(右)に強制書き換え */
+ else if (currentByte === 191) {
+ view[0] = 190;
}
}
- }, 1000 / 60);
+ return originalSend.apply(this, arguments);
+ };
- window._vectorInvertPatch = true;
- alert('【挙動反転パッチ】\n上移動時は「左」へ、下移動時は「右」へ逸れるように挙動を反転させました!');
+ window._simpleShiftPatch = true;
+ alert('【シンプル書き換えパッチ】\n・ゲームが64(上・右逸れ)を送る瞬間 ➔ 強制的に63へ変更\n・ゲームが191(下・左逸れ)を送る瞬間 ➔ 強制的に190へ変更\n\n余計な自動移動などは一切ありません。いつもの矢印キーで動かしてみてください。');
})();
/*
* @title キーボード縦移動修正
* @description キーボード縦移動時にちゃんとまっすぐになるぞ!
* @private
*/
javascript:(function(){
if (window._simpleShiftPatch) {
alert('パッチはすでに適用されています。');
return;
}
/* WebSocketの送信関数(大元)をハック */
const originalSend = WebSocket.prototype.send;
WebSocket.prototype.send = function(data) {
/* 送信データが1バイト(移動パケット)のときだけ中身を見る */
if (data && (data.byteLength === 1 || data.length === 1)) {
const view = new Uint8Array(data.buffer || data);
/* 現在ゲームが送ろうとしている数値 */
let currentByte = view[0];
/* 【真上移動のとき】ゲームが64(右逸れ)を送ろうとしたら、63(左)に強制書き換え */
if (currentByte === 64) {
view[0] = 63;
}
/* 【真下移動のとき】ゲームが191(左逸れ)を送ろうとしたら、190(右)に強制書き換え */
else if (currentByte === 191) {
view[0] = 190;
}
}
return originalSend.apply(this, arguments);
};
window._simpleShiftPatch = true;
alert('【シンプル書き換えパッチ】\n・ゲームが64(上・右逸れ)を送る瞬間 ➔ 強制的に63へ変更\n・ゲームが191(下・左逸れ)を送る瞬間 ➔ 強制的に190へ変更\n\n余計な自動移動などは一切ありません。いつもの矢印キーで動かしてみてください。');
})();
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。