Advertisement
here2share

AVOIDANCE - An HTML Game Demo ZZZ

May 27th, 2015
349
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 7.18 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <script> // AVOIDANCE - An HTML Game Demo ZZZ</script>
  3. <html>
  4. <head>
  5.  
  6. <style>
  7. body
  8. {
  9.     background-color:green;
  10. }
  11. #simpleCanvas
  12. {
  13.     position: absolute;
  14.     top: 5%;
  15.     left: 30%;
  16.     border:2px solid blue;
  17.     width:500px;
  18.     height:500px;
  19.     background-color: yellow;
  20. }
  21. </style>
  22. <script> // AVOIDANCE - An HTML Game Demo ZZZ
  23.  
  24.     /* Ball Array */
  25.     var ball = new Array();
  26.     ball[0] = new Ball(150, 150);   // x location of target, y location of target
  27.     ball[1] = new Ball(200, 350);
  28.     ball[2] = new Ball(400, 350);
  29.     ball[3] = new Ball(320, 250);
  30.     ball[4] = new Ball(440, 190);
  31.     ball[5] = new Ball(100, 350);
  32.     ball[6] = new Ball(80, 120);
  33.     ball[7] = new Ball(130, 240);
  34.  
  35.  
  36.     /* Player */
  37.     var player = new Player();
  38.  
  39.     var score;
  40.  
  41.     /* PLAYER OBJECT */
  42.     function Player()
  43.     {
  44.        /* private member variables */
  45.        var x = 10;
  46.        var y = 10;      
  47.        var playerColour = "red";
  48.        var width = 25;
  49.        var height = 30;
  50.        var speed = 10;
  51.  
  52.        /* public methods */
  53.        this.draw = draw;
  54.        function draw()
  55.        {
  56.          g.fillStyle = playerColour;
  57.          g.fillRect(x, y, width, height);  
  58.          this.isHit();
  59.        }
  60.  
  61.        this.setX = setX;
  62.        function setX(newX)
  63.        {
  64.           x = newX;
  65.        }
  66.  
  67.        this.getX = getX;
  68.        function getX()
  69.        {
  70.           return x;
  71.        }  
  72.  
  73.        this.setY = setY;
  74.        function setY(newY)
  75.        {
  76.           y = newY;
  77.        }
  78.  
  79.        this.getY = getY;
  80.        function getY()
  81.        {
  82.           return y;
  83.        }
  84.  
  85.        this.getSpeed = getSpeed;
  86.        function getSpeed()
  87.        {
  88.           return speed;
  89.        }
  90.  
  91.        this.getW = getW;
  92.        function getW()
  93.        {
  94.           return width;
  95.        }  
  96.  
  97.        this.getH = getH;
  98.        function getH()
  99.        {
  100.           return height;
  101.        }  
  102.  
  103.        this.isHit = isHit;
  104.        function isHit()
  105.        {
  106.           for (var i = 0; i < ball.length; i++)
  107.          {
  108.                if (((x + width) >= ball[i].getX()) && ((x + width) <= (ball[i].getX() + (ball[i].getRadius() * 2)))
  109.                && ((y + height) >= ball[i].getY()) && ((y + height) <= (ball[i].getY() + (ball[i].getRadius() * 2))))
  110.                {
  111.                    clearInterval(theInterval);
  112.                     drawFinalScore();
  113.                     //alert("GAME OVER");
  114.                     console.log("game over");
  115.                 }
  116.           }
  117.        }
  118.  
  119.     }
  120.  
  121.     /* BALL OBJECT */
  122.     function Ball(newX, newY)
  123.     {
  124.        var x = newX;
  125.        var y = newY;
  126.        var dx = 2;
  127.        var dy = 4;
  128.        var radius = 10;
  129.        var targetColour = "blue";
  130.  
  131.        /* public methods */
  132.        this.draw = draw;
  133.        function draw()
  134.        {      
  135.         g.beginPath();
  136.         g.fillStyle = targetColour;
  137.         g.arc(x, y, radius, 0, Math.PI * 2);
  138.         g.fill();
  139.         g.closePath();
  140.         }
  141.  
  142.  
  143.        this.setX = setX;
  144.        function setX(newX)
  145.        {
  146.           x = newX;
  147.        }
  148.  
  149.        this.getX = getX;
  150.        function getX()
  151.        {
  152.           return x;
  153.        }  
  154.  
  155.        this.setY = setY;
  156.        function setY(newY)
  157.        {
  158.           y = newY;
  159.        }
  160.  
  161.        this.getY = getY;
  162.        function getY()
  163.        {
  164.           return y;
  165.        }
  166.  
  167.        this.getRadius = getRadius;
  168.        function getRadius()
  169.        {
  170.           return radius;
  171.        }  
  172.  
  173.        this.move = move;
  174.        function move()
  175.        {
  176.           x += dx;
  177.           y += dy;
  178.  
  179.         // Bounce on a left or right edge.
  180.         if (x + dx > canvas.width - radius || x + dx < radius)
  181.        {
  182.            dx = -dx;
  183.        }
  184.        // If ball hits the top, bounce it.
  185.        else if (y + dy < radius)
  186.        {  
  187.            dy = -dy;
  188.        }
  189.        //If the ball hits the bottom, check see if it hits a paddle.
  190.        else if (y + dy > canvas.height - radius)
  191.         {
  192.             dy = -dy;
  193.         }
  194.        }
  195.  
  196.     }
  197.  
  198.  
  199.  
  200.  
  201.     /* MAIN GAME */
  202.     function playGame()
  203.     {
  204.         g.clearRect(0, 0, canvas.width, canvas.height);  //Clear canvas at start.
  205.         player.draw();
  206.  
  207.         for (var i = 0; i < 8; i++)
  208.        {
  209.            ball[i].move();
  210.            ball[i].draw();
  211.        }
  212.  
  213.        // draw the score
  214.        drawElapsedTime();
  215.  
  216.    }
  217.    /* SCORE */
  218.    var startTime;
  219.    // ending elapsed time in seconds
  220.    var score;
  221.  
  222.    function drawElapsedTime(){
  223.        var elapsed=parseInt((new Date() - startTime)/1000);
  224.        g.save();
  225.        g.beginPath();
  226.        g.fillStyle="red";
  227.        g.font="14px Verdana"
  228.        // draw the running time at half opacity
  229.        g.globalAlpha=0.50;
  230.        g.fillText(elapsed+" secs",canvas.width-75,25);
  231.        g.restore();
  232.    }
  233.    function drawFinalScore(){
  234.        // set the final score just once
  235.        if(score==null){ score=parseInt((new Date() - startTime)/1000); }
  236.        g.save();
  237.        g.beginPath();
  238.        g.fillStyle="red";
  239.        g.font="30px Verdana"
  240.        g.fillText("Game Over: "+score+" secs",50,35);
  241.        g.restore();
  242.    }
  243.  
  244.  
  245.    function arrowKeyDown(e) // ZZZ Note: movement pauses first when held down
  246.    {
  247.       var stepSize = 10; //Increase size
  248.  
  249.        if (e.keyCode == 37)  // left
  250.        {
  251.           player.setX(player.getX() - player.getSpeed());
  252.           if (player.getX() < 0)
  253.           {
  254.            player.setX(0);
  255.           }
  256.        }
  257.       else if(e.keyCode == 38) // up
  258.        {
  259.           player.setY(player.getY() - player.getSpeed());
  260.           if (player.getY() < 0)
  261.           {
  262.            player.setY(0);
  263.           }
  264.        }
  265.       else if(e.keyCode == 39) // right
  266.        {
  267.           player.setX(player.getX() + player.getSpeed());  
  268.          if ((player.getX() + player.getW()) > canvas.width)
  269.           {
  270.             player.setX(canvas.width - player.getW());
  271.           }  
  272.         }
  273.        else if(e.keyCode == 40) // down
  274.         {
  275.            player.setY(player.getY() + player.getSpeed());
  276.           if ((player.getY() + player.getH()) > canvas.height)
  277.           {
  278.             player.setY(canvas.height - player.getH());
  279.           }
  280.         }      
  281.     }
  282.  
  283.     document.addEventListener('keydown',arrowKeyDown);  
  284.  
  285. </script>
  286. </head>
  287. <body>
  288.  
  289. <p><font color="#ff0000"><font face="verdana"><font size="10" style="font-size: 30pt">A V O I D A N C E</font></font></font></p>
  290. <p><font color="#000000"><font size="4">An HTML Game Demo</font></font></p><p><br></p>
  291.  
  292. </body>
  293.  
  294.     <canvas id="simpleCanvas"></canvas>
  295.  
  296. <script>
  297.  
  298.     /* Get the canvas id */
  299.     var canvas = document.getElementById("simpleCanvas");
  300.  
  301.     /* Give the canvas a width and height */
  302.     /* The width and height are in canvas logical units */
  303.     canvas.width = 500;
  304.     canvas.height = 500;
  305.  
  306.     /* Assign a graphics context to the canvas, so that we can draw on it */
  307.     var g = canvas.getContext("2d");
  308.  
  309.     /* Do the function, call every 20 milliseconds*/
  310.     startTime=new Date();
  311.     var theInterval=setInterval(playGame, 20);
  312.  
  313. </script>
  314. <audio src="intense.mp3" autoplay loop></audio>
  315. </body>
  316. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement