Guest User

Untitled

a guest
Mar 10th, 2016
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <!DOCTYPE html>
  2.  
  3. <html>
  4.  
  5.     <head>
  6.         <title>PONG in JS</title>
  7.         <style type="text/css">
  8.               body {margin:0; padding:0;} /* remove top and left whitespace */
  9.               *{
  10.                 margin: 0;
  11.                 padding: 0 }
  12.                 canvas {display:block;}    /* remove scrollbars */
  13.                 canvas:focus {outline:0;} /* remove blue outline around canvas */
  14.                 .fs {position:fixed; bottom:20px; right:20px;}
  15.                 #enter {display:block;}
  16.                 #exit {display:none;}
  17.             </style>  
  18.     </head>
  19.    
  20.     <body>
  21.           <canvas id="pongcanvas"></canvas>
  22.     </body>
  23.  
  24.  
  25.     <script src="processing.min.js"></script>
  26.     <script>   
  27.    
  28.     var sketchProc = function(processingInstance) {
  29.         with (processingInstance) {
  30.             size(window.innerWidth, window.innerHeight);
  31.             frameRate(60);
  32.            
  33.             //SETUP        
  34.             var screenWidth=window.innerWidth;
  35.             var screenHeight=window.innerHeight;
  36.                    
  37.             //Paddle Vars
  38.             var paddleX = mouseX;
  39.             var basePaddleWidth = 50;
  40.             var paddleWidth = basePaddleWidth;
  41.  
  42.             //Ball Vars
  43.             var ballWidth = 10;
  44.             var ballX = screenWidth/2;
  45.             var ballY = screenHeight/2;
  46.             var targetBallSpeedX = 1;
  47.             var targetBallSpeedY = 1;
  48.             var ballSpeedX = targetBallSpeedX;
  49.             var ballSpeedY = targetBallSpeedY;
  50.             var ballXDistanceFromPaddle = (paddleX - ballX);
  51.             var ballXSpeedIncrement = 1;
  52.  
  53.             //Enemy Paddle Vars
  54.             var enemyPaddleX = screenWidth/2;
  55.             var enemyBasePaddleWidth = 50;
  56.             var enemyPaddleWidth = enemyBasePaddleWidth;
  57.             var enemyPaddleSpeedLimitX = 1;
  58.             var enemyPaddleSpeedX = 1;
  59.             var enemyPaddleDistanceToBall = enemyPaddleX - ballX;
  60.  
  61.             //Game Vars
  62.             var restartTimer = 5000;
  63.             var restartCount = 0;
  64.             var score = 0;
  65.             var highScore = 0;
  66.            
  67.             var getImage = function(s) {
  68.                 var url = "http://www.wacomalt.com/dropbox/LABS/JSCODE/data/" + s + ".png";
  69.                 processing.externals.sketch.imageCache.add(url);
  70.                 return processing.loadImage(url);
  71.             };
  72.            
  73.             var goodPaddleImage = getImage("goodpaddle");
  74.  
  75.             var restart = function() {
  76.               ballX = screenWidth/2;
  77.               ballY = screenHeight/2;
  78.               enemyPaddleSpeedLimitX = 1;
  79.               ballSpeedX = 1;
  80.               ballSpeedY = 1;
  81.             };
  82.  
  83.             var restartPlus = function() {
  84.                 ballX = screenWidth/2;
  85.                 ballY = screenHeight/2;
  86.                 enemyPaddleSpeedLimitX = enemyPaddleSpeedLimitX + 0.0625;
  87.                 score++;
  88.                 ballSpeedY = -ballSpeedY;
  89.                 };
  90.  
  91.             var draw = function() {
  92.                 paddleX = mouseX;
  93.                
  94.                 //Background
  95.                 fill(42, 80, 145, 80);
  96.                 rect(-1, -1, screenWidth+1, screenHeight+1);
  97.                 stroke(127,127,127);
  98.                 fill(173, 173, 173);
  99.                 rect(0,0,screenWidth-1,40);
  100.                
  101.                 //Score display
  102.                 fill(0, 0, 0);
  103.                 textSize(20);
  104.                 text("Score: " + score,5,5,200,20);
  105.                 text("High Score: " + highScore,223,5,310,20);
  106.                
  107.                 //Draw Paddle
  108.                 fill(123, 255, 0);
  109.                 stroke(0,0,0);
  110.                 rect(paddleX-(paddleWidth/2),screenHeight-20,paddleWidth,10);
  111.                 image(goodPaddleImage ,paddleX-25,screenHeight-20, 50, 10);
  112.                
  113.                 //Draw Enemy Paddle
  114.                 fill(255, 0, 0);
  115.                 stroke(0,0,0);
  116.                 rect(enemyPaddleX-(enemyPaddleWidth/2),40,enemyPaddleWidth,10);
  117.                
  118.                 //Draw Ball
  119.                 stroke(184, 37, 0);
  120.                 fill(255, 140, 0);
  121.                 ellipse(ballX, ballY, ballWidth, ballWidth);
  122.                
  123.                 ballXDistanceFromPaddle = (paddleX - ballX);
  124.                 enemyPaddleDistanceToBall = (enemyPaddleX - ballX);
  125.                
  126.                 if (ballX > screenWidth-5) {
  127.                     ballSpeedX = -ballSpeedX;
  128.                 }
  129.                 if (ballX < 5) {
  130.                     ballSpeedX = (ballSpeedX * -1);
  131.                 }
  132.                 if (ballY > screenHeight-25) {
  133.                     if (abs(ballXDistanceFromPaddle) < ((paddleWidth/2)+ballWidth)){
  134.                         ballSpeedY = ((ballSpeedY * -1) - 0.125);
  135.                         enemyPaddleSpeedLimitX = enemyPaddleSpeedLimitX + 0.0625;
  136.                         ballXSpeedIncrement = ballXSpeedIncrement + 0.02;
  137.                         ballSpeedX = (ballXDistanceFromPaddle / -12.5) * ballXSpeedIncrement;
  138.                     }
  139.                     else {
  140.                         if (score > 0){score = 0;}
  141.                         restart();
  142.                                 }
  143.                 }
  144.                 if (ballY < 55) {
  145.                     if (abs(enemyPaddleDistanceToBall) < ((enemyPaddleWidth/2)+ballWidth)){
  146.                         ballSpeedY = ((ballSpeedY * -1) + 0.125);
  147.                         enemyPaddleSpeedLimitX = enemyPaddleSpeedLimitX + 0.0625;
  148.                         ballXSpeedIncrement = ballXSpeedIncrement + 0.02;
  149.                         ballSpeedX = (enemyPaddleDistanceToBall / -12.5) * ballXSpeedIncrement;
  150.                     }
  151.                     else {
  152.                         restartPlus();
  153.                     }
  154.                    
  155.                 }
  156.                
  157.                 if (score > highScore) {highScore = score;}
  158.                
  159.                 ballX = ballX + ballSpeedX;
  160.                 ballY = ballY + ballSpeedY;
  161.                 enemyPaddleSpeedX = enemyPaddleDistanceToBall;
  162.                 if (enemyPaddleSpeedX > enemyPaddleSpeedLimitX) {
  163.                     enemyPaddleSpeedX = enemyPaddleSpeedLimitX;
  164.                     }
  165.                 if (enemyPaddleSpeedX < -enemyPaddleSpeedLimitX) {
  166.                     enemyPaddleSpeedX = -enemyPaddleSpeedLimitX;
  167.                     }
  168.                 enemyPaddleX = enemyPaddleX - enemyPaddleSpeedX;
  169.                 };
  170.             }
  171.         };
  172.  
  173.     var canvas = document.getElementById("pongcanvas");
  174.     var processingInstance = new Processing(canvas, sketchProc);
  175.     </script>
  176.  
  177. </html>
Add Comment
Please, Sign In to add comment