PCエンジン miniのパッドが使えるJavaScriptコード(最低限)

※PCエンジン mini パッドの仕様やJavaScriptに関して、公式的・専門的立場に基づいた知識や見解を含む内容ではございません。あらかじめご了承ください。


PCエンジン mini パッドを認識するための、ゲームパッドAPIに基づいたJavaScriptコードです。

以下のコードを適当に放り込んで調整すれば最低限動くと思います。

let connectedGamepadIndex;
let loopID;
let padId;

addEventListener("gamepadconnected", (e) => {

connectedGamepadIndex = e.gamepad.index;
loopID = requestAnimationFrame(padLoop);

//PCエンジン miniのパッドか否かを判定するのに、適当に使ってください。
padId = e.gamepad.id;

});

function padLoop(e) {

let gamepads = navigator.getGamepads();
let gp = gamepads[connectedGamepadIndex];

let i_Button = gp.buttons[2];
let ii_Button = gp.buttons[1];
let runButton = gp.buttons[9];
let selectButton = gp.buttons[8];

if(i_Button.value == 1.0) { //以下にⅠボタンが押されている時の処理を書く。

}else{ //以下にⅠボタンが押されていない時の処理を書く。

}

if(ii_Button.value == 1.0){ //以下にⅡボタンが押されている時の処理を書く。

}else{ //以下にⅡボタンが押されていない時の処理を書く。

}

if(runButton.value == 1.0){ //以下にRUNボタンが押されている時の処理を書く。

}else{ //以下にRUNボタンが押されていない時の処理を書く。

}

if(selectButton.value == 1.0){ //以下にSELECTボタンが押されている時の処理を書く。

}else{ //以下にSELECTボタンが押されていない時の処理を書く。

}

let dPad = Math.floor(gp.axes[9] * 1000);

if(dPad == 3285){/* 方向キーが押されていない時の処理を書く */}
if(dPad == -1000){/* 方向キー:上 が押されている時の処理を書く */}
if(dPad == 1000){/* 方向キー:左上 が押されている時の処理を書く */}
if(dPad == 714){/* 方向キー:左 が押されている時の処理を書く */}
if(dPad == 428){/* 方向キー:左下 が押されている時の処理を書く */}
if(dPad == 142){/* 方向キー:下 が押されている時の処理を書く */}
if(dPad == -143){/* 方向キー:右下 が押されている時の処理を書く */}
if(dPad == -429){/* 方向キー:右 が押されている時の処理を書く */}
if(dPad == -715){/* 方向キー:右上 が押されている時の処理を書く */}

requestAnimationFrame(padLoop);

}

方向キーの情報取得に利用するのはgp.buttons[]ではなく、gp.axes[9]であるという点に気を付けましょう。
※gpの定義の仕方はコードから直接確認してください。

gp.axes[9]の書き方はもっと上手い方法がありそうですが、あまり詳しくないので力業で。

付属パッド、ターボパッドの両方に対応できます。


この記事が気に入ったらサポートをしてみませんか?