Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.76 KB | None | 0 0
  1. function doOnKeyDown (c, event) {
  2. let state
  3. if (player === 1) {
  4. state = m.p1
  5. } else if (player === 2) {
  6. state = m.p2
  7. }
  8. switch (event.keyCode) {
  9. case cfg.keyLeft:
  10. if (!state.keys.leftPressed) {
  11. moveWithDelay(cfg, c, state, 'leftPressed', 'delaySideInit', 'delaySideInterval', moveHorizontal, -1)
  12. }
  13. break
  14.  
  15. case cfg.keyRight:
  16. if (!state.keys.rightPressed) {
  17. moveWithDelay(cfg, c, state, 'rightPressed', 'delaySideInit', 'delaySideInterval', moveHorizontal, 1)
  18. }
  19. break
  20.  
  21. case cfg.keyUp:
  22. if (!state.keys.upPressed) {
  23. moveWithDelay(cfg, c, state, 'upPressed', 'delayVertInit', 'delayVertInterval', moveVertical, -1)
  24. }
  25. break
  26.  
  27. case cfg.keyDown:
  28. if (!state.keys.downPressed) {
  29. moveWithDelay(cfg, c, state, 'downPressed', 'delayVertInit', 'delayVertInterval', moveVertical, 1)
  30. }
  31. break
  32.  
  33. case cfg.keyRotateLeft:
  34. rotate(state, -1)
  35. drawBoard(c, state, cfg)
  36. break
  37.  
  38. case cfg.keyRotateRight:
  39. rotate(state, 1)
  40. drawBoard(c, state, cfg)
  41. break
  42.  
  43. case cfg.keyRotateDouble:
  44. doubleRotate(state)
  45. drawBoard(c, state, cfg)
  46. break
  47.  
  48. case cfg.keyLock:
  49. dropAndLock(state)
  50. // transferGarbage(m)
  51. drawBoard(c, state, cfg)
  52. // drawBoard(c, m.p2, cfg)
  53. // socket.emit('transferGarbage', m.p1.attack)
  54. break
  55. }
  56. }
  57.  
  58. function doOnKeyUp (event) {
  59. let state
  60. if (player === 1) {
  61. state = m.p1
  62. } else if (player === 2) {
  63. state = m.p2
  64. }
  65.  
  66. switch (event.keyCode) {
  67. case cfg.keyLeft:
  68. state.keys.leftPressed = 0
  69. break
  70.  
  71. case cfg.keyRight:
  72. state.keys.rightPressed = 0
  73. break
  74.  
  75. case cfg.keyUp:
  76. state.keys.upPressed = 0
  77. break
  78.  
  79. case cfg.keyDown:
  80. state.keys.downPressed = 0
  81. break
  82. }
  83. }
  84. async function moveWithDelay (cfg, c, p1, keyPressed, initDelay, intervalDelay, moveFn, delta) {
  85. let time = Date.now()
  86. p1.keys[keyPressed] = time
  87. moveFn(p1, delta)
  88. drawBoard(c, p1, cfg)
  89. await sleep(cfg[initDelay])
  90. if (cfg[intervalDelay] === 0 && moveFn === moveHorizontal) {
  91. while (p1.keys[keyPressed] === time) {
  92. instantMoveHorizontal(p1, delta)
  93. drawBoard(c, p1, cfg)
  94. await sleep(1)
  95. }
  96. } else if (cfg[intervalDelay] === 0 && moveFn === moveVertical) {
  97. while (p1.keys[keyPressed] === time) {
  98. instantMoveVertical(p1, delta)
  99. drawBoard(c, p1, cfg)
  100. await sleep(1)
  101. }
  102. } else {
  103. while (p1.keys[keyPressed] === time) {
  104. moveFn(p1, delta)
  105. drawBoard(c, p1, cfg)
  106. await sleep(cfg[intervalDelay])
  107. }
  108. }
  109. }
  110.  
  111. function sleep (ms) {
  112. return new Promise(resolve => setTimeout(resolve, ms))
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement