Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.99 KB | None | 0 0
  1. <html>
  2. <head>
  3. <center> Super Pong </center>
  4. <meta content="text/html;charset=utf-8" http-equiv="Content-Type">
  5. <meta content="utf-8" http-equiv="encoding">
  6. </head>
  7. <div style = "text-align:center;">
  8. <canvas id = "gameCanvas" width = "800" height = "600"> </canvas>
  9. <p id = "scoreBoard"> 0 SCORE 0 </p>
  10. </div>
  11. <script>
  12. var myCanvas;
  13. var canvasContext;
  14.  
  15. var ballSize = 25;
  16.  
  17. var ballX = 0;
  18. var ballY = 0;
  19.  
  20. var ballTrailX = 0;
  21. var ballTrailY = 0;
  22. var ballTrail2X = 0;
  23. var ballTrail2Y = 0;
  24.  
  25. var speedX = 5;
  26. var speedY = 5;
  27.  
  28. var paddleHeight = 100;
  29.  
  30. var paddle1Y = 300;
  31. var paddle2Y = 300;
  32.  
  33. var player1Score = 0;
  34. var player2Score = 0;
  35.  
  36. var baseSpeed = 3;
  37. var direction = 1;
  38.  
  39. var scoreBoard;
  40.  
  41. function GetMousePosition(event) {
  42. var rect = myCanvas.getBoundingClientRect();
  43. var mouseX = event.clientX - rect.left;
  44. var mouseY = event.clientY - rect.top;
  45.  
  46. return {
  47. x:mouseX,
  48. y:mouseY
  49. };
  50. }
  51.  
  52. window.onload = function() {
  53. myCanvas = document.getElementById('gameCanvas');
  54. canvasContext = myCanvas.getContext('2d');
  55.  
  56. scoreBoard = document.getElementById("scoreBoard");
  57.  
  58. //Repeatedly update the screen
  59. setInterval(DrawStuff, 20);
  60.  
  61. document.addEventListener("keydown",
  62. function(evt) {
  63. const key = evt.key.toLowerCase();
  64. console.log(key);
  65. if(key == 'w' && paddle1Y > 0){
  66. paddle1Y -= paddleHeight;
  67. }
  68. if(key == 's' && paddle1Y < 399+paddleHeight){
  69. paddle1Y += paddleHeight;
  70. }
  71. });
  72.  
  73. document.addEventListener("keydown",
  74. function(evt) {
  75. const key = evt.key.toLowerCase();
  76. console.log(key);
  77. if(key == 'arrowup' && paddle2Y > 0){
  78. paddle2Y -= paddleHeight;
  79. }
  80. if(key == 'arrowdown' && paddle2Y < 399+paddleHeight){
  81. paddle2Y += paddleHeight;
  82. }
  83. });
  84. }
  85.  
  86.  
  87. function DrawStuff() {
  88. // detect score and reset ball
  89. detectPoints();
  90.  
  91. //update ball trail
  92. ballTrail2X = ballTrailX;
  93. ballTrail2Y = ballTrailY;
  94. ballTrailX = ballX+4;
  95. ballTrailY = ballY+4;
  96. //Update ball position
  97. ballX += speedX;
  98. ballY += speedY;
  99.  
  100. //Draw Stuff
  101. canvasContext.fillStyle = 'black';
  102. canvasContext.fillRect(0,0,myCanvas.width,myCanvas.height);
  103.  
  104. canvasContext.fillStyle = 'white';
  105. canvasContext.fillRect(ballX, ballY, ballSize, ballSize);
  106.  
  107. canvasContext.fillStyle = 'white';
  108. canvasContext.fillRect(ballTrailX, ballTrailY, ballSize-9, ballSize-9);
  109.  
  110. canvasContext.fillStyle = 'white';
  111. canvasContext.fillRect(ballTrail2X, ballTrail2Y, ballSize-13, ballSize-13);
  112.  
  113. canvasContext.fillRect((myCanvas.width / 2) - 1, 0, 2, myCanvas.height);
  114.  
  115. canvasContext.fillRect(10, paddle1Y, 10, paddleHeight);
  116. canvasContext.fillRect(myCanvas.width - 20, paddle2Y, 10, paddleHeight);
  117.  
  118.  
  119. //Bounce top and bottom
  120. if (ballY <= 0 || ballY + ballSize >= myCanvas.height) {
  121. speedY *= -1;
  122. }
  123.  
  124. //Paddle Collisions
  125. if(ballX <= 20 && (ballY >= paddle1Y && ballY <= paddle1Y + paddleHeight)) {
  126. speedX *= -1.1;
  127. }
  128.  
  129. if (ballX >= myCanvas.width - 45 && (ballY >= paddle2Y && ballY <= paddle2Y + paddleHeight)) {
  130. speedX *= -1.1;
  131. }
  132.  
  133. }
  134.  
  135. function detectPoints() {
  136. if (ballX <= -10) {
  137. player2Score++;
  138. resetBall();
  139. scoreBoard.innerHTML = player1Score + " SCORE " + player2Score;
  140. } else if (ballX >= myCanvas.width+10) {
  141. player1Score++;
  142. resetBall();
  143. scoreBoard.innerHTML = player1Score + " SCORE " + player2Score;
  144. }
  145. }
  146.  
  147. function resetBall(){
  148. var yDirection = 1;
  149. if(Math.random() > 0.5){
  150. yDirection = -1;
  151. }
  152. ballX = 400;
  153. ballY = 300;
  154. speedX = (Math.floor(Math.random()*4) + baseSpeed)*direction;
  155. speedY = (Math.floor(Math.random()*4) + baseSpeed)*yDirection;
  156. if(baseSpeed<15){
  157. baseSpeed +=1;
  158. }
  159. direction*=-1;
  160. }
  161.  
  162. </script>
  163. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement