add hotkeys for replay speed up/down pause
This commit is contained in:
parent
514b3c6b22
commit
3447681f10
7 changed files with 48 additions and 5 deletions
File diff suppressed because one or more lines are too long
1
build/public/assets/index.c6197c7d.js
Normal file
1
build/public/assets/index.c6197c7d.js
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -4,7 +4,7 @@
|
|||
<meta charset="UTF-8">
|
||||
|
||||
<title>🧩 jigsaw.hyottoko.club</title>
|
||||
<script type="module" crossorigin src="/assets/index.ab1d6e0f.js"></script>
|
||||
<script type="module" crossorigin src="/assets/index.c6197c7d.js"></script>
|
||||
<link rel="modulepreload" href="/assets/vendor.684f7bc8.js">
|
||||
<link rel="stylesheet" href="/assets/index.8f0efd0f.css">
|
||||
</head>
|
||||
|
|
|
|||
|
|
@ -358,6 +358,9 @@ const INPUT_EV_PLAYER_NAME = 8;
|
|||
const INPUT_EV_MOVE = 9;
|
||||
const INPUT_EV_TOGGLE_PREVIEW = 10;
|
||||
const INPUT_EV_TOGGLE_SOUNDS = 11;
|
||||
const INPUT_EV_REPLAY_TOGGLE_PAUSE = 12;
|
||||
const INPUT_EV_REPLAY_SPEED_UP = 13;
|
||||
const INPUT_EV_REPLAY_SPEED_DOWN = 14;
|
||||
const CHANGE_DATA = 1;
|
||||
const CHANGE_TILE = 2;
|
||||
const CHANGE_PLAYER = 3;
|
||||
|
|
@ -381,6 +384,9 @@ var Protocol = {
|
|||
INPUT_EV_PLAYER_NAME,
|
||||
INPUT_EV_TOGGLE_PREVIEW,
|
||||
INPUT_EV_TOGGLE_SOUNDS,
|
||||
INPUT_EV_REPLAY_TOGGLE_PAUSE,
|
||||
INPUT_EV_REPLAY_SPEED_UP,
|
||||
INPUT_EV_REPLAY_SPEED_DOWN,
|
||||
CHANGE_DATA,
|
||||
CHANGE_TILE,
|
||||
CHANGE_PLAYER,
|
||||
|
|
|
|||
|
|
@ -60,6 +60,10 @@ const INPUT_EV_MOVE = 9
|
|||
const INPUT_EV_TOGGLE_PREVIEW = 10
|
||||
const INPUT_EV_TOGGLE_SOUNDS = 11
|
||||
|
||||
const INPUT_EV_REPLAY_TOGGLE_PAUSE = 12
|
||||
const INPUT_EV_REPLAY_SPEED_UP = 13
|
||||
const INPUT_EV_REPLAY_SPEED_DOWN = 14
|
||||
|
||||
const CHANGE_DATA = 1
|
||||
const CHANGE_TILE = 2
|
||||
const CHANGE_PLAYER = 3
|
||||
|
|
@ -90,6 +94,10 @@ export default {
|
|||
INPUT_EV_TOGGLE_PREVIEW,
|
||||
INPUT_EV_TOGGLE_SOUNDS,
|
||||
|
||||
INPUT_EV_REPLAY_TOGGLE_PAUSE,
|
||||
INPUT_EV_REPLAY_SPEED_UP,
|
||||
INPUT_EV_REPLAY_SPEED_DOWN,
|
||||
|
||||
CHANGE_DATA,
|
||||
CHANGE_TILE,
|
||||
CHANGE_PLAYER,
|
||||
|
|
|
|||
|
|
@ -13,6 +13,10 @@
|
|||
<tr><td>🧩✔️ Toggle fixed pieces:</td><td><div><kbd>F</kbd></div></td></tr>
|
||||
<tr><td>🧩❓ Toggle loose pieces:</td><td><div><kbd>G</kbd></div></td></tr>
|
||||
<tr><td>🔉 Toggle sounds:</td><td><div><kbd>M</kbd></div></td></tr>
|
||||
|
||||
<tr><td>⏫ Speed up (replay):</td><td><div><kbd>I</kbd></div></td></tr>
|
||||
<tr><td>⏬ Speed down (replay):</td><td><div><kbd>O</kbd></div></td></tr>
|
||||
<tr><td>⏸️ Pause (replay):</td><td><div><kbd>P</kbd></div></td></tr>
|
||||
</table>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -92,7 +92,12 @@ function addCanvasToDom(TARGET_EL: HTMLElement, canvas: HTMLCanvasElement) {
|
|||
return canvas
|
||||
}
|
||||
|
||||
function EventAdapter (canvas: HTMLCanvasElement, window: any, viewport: any) {
|
||||
function EventAdapter (
|
||||
canvas: HTMLCanvasElement,
|
||||
window: any,
|
||||
viewport: any,
|
||||
MODE: string
|
||||
) {
|
||||
let events: Array<GameEvent> = []
|
||||
|
||||
let KEYS_ON = true
|
||||
|
|
@ -174,6 +179,20 @@ function EventAdapter (canvas: HTMLCanvasElement, window: any, viewport: any) {
|
|||
if (ev.key === ' ') {
|
||||
addEvent([Protocol.INPUT_EV_TOGGLE_PREVIEW])
|
||||
}
|
||||
|
||||
if (MODE === MODE_REPLAY) {
|
||||
if (ev.key === 'I' || ev.key === 'i') {
|
||||
addEvent([Protocol.INPUT_EV_REPLAY_SPEED_UP])
|
||||
}
|
||||
|
||||
if (ev.key === 'O' || ev.key === 'o') {
|
||||
addEvent([Protocol.INPUT_EV_REPLAY_SPEED_DOWN])
|
||||
}
|
||||
|
||||
if (ev.key === 'P' || ev.key === 'p') {
|
||||
addEvent([Protocol.INPUT_EV_REPLAY_TOGGLE_PAUSE])
|
||||
}
|
||||
}
|
||||
if (ev.key === 'F' || ev.key === 'f') {
|
||||
PIECE_VIEW_FIXED = !PIECE_VIEW_FIXED
|
||||
RERENDER = true
|
||||
|
|
@ -396,7 +415,7 @@ export async function main(
|
|||
-(TABLE_HEIGHT - canvas.height) /2
|
||||
)
|
||||
|
||||
const evts = EventAdapter(canvas, window, viewport)
|
||||
const evts = EventAdapter(canvas, window, viewport, MODE)
|
||||
|
||||
const previewImageUrl = Game.getImageUrl(gameId)
|
||||
|
||||
|
|
@ -699,7 +718,13 @@ export async function main(
|
|||
// LOCAL ONLY CHANGES
|
||||
// -------------------------------------------------------------
|
||||
const type = evt[0]
|
||||
if (type === Protocol.INPUT_EV_MOVE) {
|
||||
if (type === Protocol.INPUT_EV_REPLAY_TOGGLE_PAUSE) {
|
||||
replayOnPauseToggle()
|
||||
} else if (type === Protocol.INPUT_EV_REPLAY_SPEED_DOWN) {
|
||||
replayOnSpeedDown()
|
||||
} else if (type === Protocol.INPUT_EV_REPLAY_SPEED_UP) {
|
||||
replayOnSpeedUp()
|
||||
} else if (type === Protocol.INPUT_EV_MOVE) {
|
||||
const diffX = evt[1]
|
||||
const diffY = evt[2]
|
||||
RERENDER = true
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue