OMORI_Android/www.eng/js/porting/jscontrols.js

40 lines
No EOL
1.2 KiB
JavaScript

// by VienDesu! Poring Team 2023
function create_fps_button() {
// Remove in release
const keys = [{ key: 'F2', keyCode: 113 }];
const FPSBtn = document.createElement("div");
FPSBtn.className = "fps-button";
FPSBtn.id = "buttonF2";
document.body.appendChild(FPSBtn);
for (const key of keys) {
const elementId = key.id === undefined ? `button${key.key}` : key.id;
console.log(`Setting up the ${elementId} key...`);
setupKey(elementId, key.key, key.keyCode);
}
}
function sendEvent(isUp, keycode) {
document.getElementById("GameCanvas").focus();
document.dispatchEvent(new KeyboardEvent(isUp ? 'keyup' : 'keydown', { 'key': '', keyCode: keycode }))
}
function setupKey(id, key, keyCode) {
const element = document.getElementById(id);
element.addEventListener("pointerdown", (event) => {
console.log(`Pointer down for ${id}`); //Remove in release
event.stopImmediatePropagation();
event.preventDefault();
sendEvent(false, keyCode);
});
element.addEventListener("pointerup", () => {
sendEvent(true, keyCode);
});
}
window.addEventListener('load', () => {
create_fps_button(); // Remove in release
});