Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function doOnKeyDown (c, event) {
- let state
- if (player === 1) {
- state = m.p1
- } else if (player === 2) {
- state = m.p2
- }
- switch (event.keyCode) {
- case cfg.keyLeft:
- if (!state.keys.leftPressed) {
- moveWithDelay(cfg, c, state, 'leftPressed', 'delaySideInit', 'delaySideInterval', moveHorizontal, -1)
- }
- break
- case cfg.keyRight:
- if (!state.keys.rightPressed) {
- moveWithDelay(cfg, c, state, 'rightPressed', 'delaySideInit', 'delaySideInterval', moveHorizontal, 1)
- }
- break
- case cfg.keyUp:
- if (!state.keys.upPressed) {
- moveWithDelay(cfg, c, state, 'upPressed', 'delayVertInit', 'delayVertInterval', moveVertical, -1)
- }
- break
- case cfg.keyDown:
- if (!state.keys.downPressed) {
- moveWithDelay(cfg, c, state, 'downPressed', 'delayVertInit', 'delayVertInterval', moveVertical, 1)
- }
- break
- case cfg.keyRotateLeft:
- rotate(state, -1)
- drawBoard(c, state, cfg)
- break
- case cfg.keyRotateRight:
- rotate(state, 1)
- drawBoard(c, state, cfg)
- break
- case cfg.keyRotateDouble:
- doubleRotate(state)
- drawBoard(c, state, cfg)
- break
- case cfg.keyLock:
- dropAndLock(state)
- // transferGarbage(m)
- drawBoard(c, state, cfg)
- // drawBoard(c, m.p2, cfg)
- // socket.emit('transferGarbage', m.p1.attack)
- break
- }
- }
- function doOnKeyUp (event) {
- let state
- if (player === 1) {
- state = m.p1
- } else if (player === 2) {
- state = m.p2
- }
- switch (event.keyCode) {
- case cfg.keyLeft:
- state.keys.leftPressed = 0
- break
- case cfg.keyRight:
- state.keys.rightPressed = 0
- break
- case cfg.keyUp:
- state.keys.upPressed = 0
- break
- case cfg.keyDown:
- state.keys.downPressed = 0
- break
- }
- }
- async function moveWithDelay (cfg, c, p1, keyPressed, initDelay, intervalDelay, moveFn, delta) {
- let time = Date.now()
- p1.keys[keyPressed] = time
- moveFn(p1, delta)
- drawBoard(c, p1, cfg)
- await sleep(cfg[initDelay])
- if (cfg[intervalDelay] === 0 && moveFn === moveHorizontal) {
- while (p1.keys[keyPressed] === time) {
- instantMoveHorizontal(p1, delta)
- drawBoard(c, p1, cfg)
- await sleep(1)
- }
- } else if (cfg[intervalDelay] === 0 && moveFn === moveVertical) {
- while (p1.keys[keyPressed] === time) {
- instantMoveVertical(p1, delta)
- drawBoard(c, p1, cfg)
- await sleep(1)
- }
- } else {
- while (p1.keys[keyPressed] === time) {
- moveFn(p1, delta)
- drawBoard(c, p1, cfg)
- await sleep(cfg[intervalDelay])
- }
- }
- }
- function sleep (ms) {
- return new Promise(resolve => setTimeout(resolve, ms))
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement