Advertisement
mcslender

Ball physics

Jun 26th, 2017
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta content="text/html;charset=utf-8" http-equiv="Content-Type">
  5.     <meta content="utf-8" http-equiv="encoding">
  6. </head>
  7.  
  8. <body>
  9. <canvas id="gameCanvas" width="800" height="600"></canvas>
  10.  
  11. <script>
  12. var ballX = 75;
  13. var ballY = 75;
  14. var ballSpeedX = 5;
  15. var ballSpeedY = 7;
  16.  
  17. const PADDLE_WIDTH = 100;
  18. const PADDLE_THICKNESS = 10;
  19. const DIST_EDGE = 60;
  20. var canvas, canvasContext;
  21. var paddleX=100;
  22. function updateMousePos(evt){
  23.     var rect = canvas.getBoundingClientRect();
  24.     var root = document.documentElement;
  25.    
  26.     var mouseX = evt.clientX - rect.left- root.scrollLeft;
  27.    
  28.    
  29.     paddleX = mouseX - PADDLE_WIDTH/2;
  30.    
  31. }
  32.  
  33. window.onload = function() {
  34. //  create canvas
  35.     canvas = document.getElementById('gameCanvas');
  36.     canvasContext = canvas.getContext('2d');
  37.    
  38.     var fps=60;
  39.     setInterval(updateAll,1000/fps);
  40.    
  41.     canvas.addEventListener('mousemove', updateMousePos);
  42.    
  43. }
  44.  
  45. function updateAll(){
  46.     moveAll();
  47.     drawAll();
  48. }
  49.  
  50. function ballReset(){
  51.     ballX=canvas.width/2;
  52.     ballY=canvas.height/2;
  53.  
  54. }
  55.     function moveAll(){
  56.     ballX += ballSpeedX;
  57.     ballY += ballSpeedY;
  58.        
  59.        
  60.         if (ballX<0){
  61.             ballSpeedX *=-1;
  62.         }
  63.         if (ballX>canvas.width){
  64.             ballSpeedX *=-1;
  65.         }
  66.        
  67.  
  68.         if (ballY < 0){
  69.             ballSpeedY *=-1;       
  70.                         }              
  71.        
  72.         var paddleTopEdgeY = canvas.height-DIST_EDGE;
  73.         var paddleBottomEdgeY=paddleTopEdgeY+PADDLE_THICKNESS;
  74.         var paddleLeftEdgeX=paddleX;
  75.         var paddleRightEdgeX=paddleTopEdgeY+PADDLE_WIDTH;
  76.         if (ballY > paddleTopEdgeY
  77.         && ballY < paddleBottomEdgeY
  78.         && ballX > paddleLeftEdgeX
  79.         && ballX < paddleRightEdgeX){
  80.             ballSpeedY*=-1;
  81.             }
  82.         if (ballY > canvas.height){
  83.             ballReset();
  84.         }
  85.         }
  86.    
  87.    
  88.     function drawAll(){
  89.     //draw game background
  90.         colorRect(0,0,canvas.width,canvas.height,'black');
  91.        
  92.         //draw ball
  93.         colorCircle(ballX,ballY, 10, 'white'); // draw ball;
  94.         //draw paddle
  95.         colorRect(paddleX, canvas.height-DIST_EDGE,PADDLE_WIDTH,PADDLE_THICKNESS,'white');
  96.         }
  97.  
  98.  
  99. function colorRect(topLeftX,topLeftY,boxWidth,boxHeight,fillColor){
  100.         canvasContext.fillStyle = fillColor;
  101.         canvasContext.fillRect(topLeftX,topLeftY,boxWidth,boxHeight);
  102.  
  103. }
  104. function colorCircle(centerX,centerY, radius, fillColor) {
  105.     canvasContext.fillStyle = fillColor;
  106.     canvasContext.beginPath();
  107.     canvasContext.arc(centerX,centerY, 10, 0,Math.PI*2, true);
  108.     canvasContext.fill();
  109. }
  110.  
  111. </script>
  112.  
  113. </body>
  114. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement