<script>
							 | 
						|
								    
							 | 
						|
								    window.addEventListener("keydown", function(e) 
							 | 
						|
								    {
							 | 
						|
								        // space and arrow keys
							 | 
						|
								        if([32, 37, 38, 39, 40].indexOf(e.keyCode) > -1) 
							 | 
						|
								        {
							 | 
						|
								            e.preventDefault();
							 | 
						|
								        }
							 | 
						|
								    }, false);
							 | 
						|
								    
							 | 
						|
								    window.onload = function()
							 | 
						|
								    {
							 | 
						|
								        var canvas = document.getElementById("canvasZP");
							 | 
						|
								        var c = canvas.getContext('2d');
							 | 
						|
								        c.fillStyle= "black";
							 | 
						|
								        c.fillRect(0,0,canvas.width,canvas.height);
							 | 
						|
								    };
							 | 
						|
								    function playZP()
							 | 
						|
								    {
							 | 
						|
								
							 | 
						|
								        var animate = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function (callback) 
							 | 
						|
								        {
							 | 
						|
								            window.setTimeout(callback, 1000 / 60)
							 | 
						|
								        };
							 | 
						|
								        var canvas = document.getElementById("canvasZP");
							 | 
						|
								        var width = 700;
							 | 
						|
								        var height = 700;
							 | 
						|
								        canvas.style.textAlign = 'center';
							 | 
						|
								        var context = canvas.getContext('2d');
							 | 
						|
								        var keysDown = {};
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								        var score = 0;
							 | 
						|
								        var dead = false;
							 | 
						|
								        //player
							 | 
						|
								        var Player = function(x,y)
							 | 
						|
								        {
							 | 
						|
								            this.x = x;
							 | 
						|
								            this.y = y;
							 | 
						|
								            this.width = 25;
							 | 
						|
								            this.height = 25;
							 | 
						|
								
							 | 
						|
								            this.speed = 3;
							 | 
						|
								
							 | 
						|
								            this.facing = 40;
							 | 
						|
								
							 | 
						|
								            this.updateDirection = function(key)
							 | 
						|
								            {
							 | 
						|
								                facing = key;
							 | 
						|
								            }
							 | 
						|
								
							 | 
						|
								            this.render = function()
							 | 
						|
								            {
							 | 
						|
								                context.fillStyle = "rgba(0, 45, 160, 1)"; //green
							 | 
						|
								                context.fillRect(this.x, this.y, this.width,this.height);
							 | 
						|
								            }
							 | 
						|
								
							 | 
						|
								            this.move = function()
							 | 
						|
								            {
							 | 
						|
								                for (var key in keysDown) 
							 | 
						|
								                {
							 | 
						|
								                    var value = Number(key);
							 | 
						|
								                    if (value == 37) //left
							 | 
						|
								                    {
							 | 
						|
								                        this.x = this.x - this.speed;
							 | 
						|
								                    } 
							 | 
						|
								                    else if (value == 39) //right
							 | 
						|
								                    {
							 | 
						|
								                        this.x = this.x + this.speed
							 | 
						|
								                    }
							 | 
						|
								                    else if(value == 38) //up
							 | 
						|
								                    {
							 | 
						|
								                        this.y = this.y - this.speed
							 | 
						|
								                    }
							 | 
						|
								                    else if(value == 40) //down
							 | 
						|
								                    {
							 | 
						|
								                        this.y = this.y + this.speed
							 | 
						|
								                    }
							 | 
						|
								                    else if(value == 32)
							 | 
						|
								                    {
							 | 
						|
								                        var added = false;
							 | 
						|
								
							 | 
						|
								                        for(i = 0; i< bullets.length; i++)
							 | 
						|
								                        {
							 | 
						|
								                            if(bullets[i] == -1)
							 | 
						|
								                            {
							 | 
						|
								                               bullets[i] = new Bullet();
							 | 
						|
								                               added = true;
							 | 
						|
								                               break;
							 | 
						|
								                            }
							 | 
						|
								
							 | 
						|
								                        }
							 | 
						|
								
							 | 
						|
								                        if(added == false)
							 | 
						|
								                        {
							 | 
						|
								                            bullets.push(new Bullet());
							 | 
						|
								                        }
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								                    }
							 | 
						|
								                }
							 | 
						|
								
							 | 
						|
								            }
							 | 
						|
								
							 | 
						|
								        }
							 | 
						|
								        var p = new Player(350, 350);
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								        //bullet
							 | 
						|
								        var Bullet = function()
							 | 
						|
								        {
							 | 
						|
								            this.x = p.x;
							 | 
						|
								            this.y = p.y;
							 | 
						|
								            this.width = 10;
							 | 
						|
								            this.height = 10;
							 | 
						|
								
							 | 
						|
								            this.speed = 4;
							 | 
						|
								            this.facing = p.facing;
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								            this.move = function()
							 | 
						|
								            {
							 | 
						|
								
							 | 
						|
								                if (this.facing == 37) //left
							 | 
						|
								                {
							 | 
						|
								                    this.x = this.x - this.speed;
							 | 
						|
								                } 
							 | 
						|
								                else if (this.facing == 39) //right
							 | 
						|
								                {
							 | 
						|
								                    this.x = this.x + this.speed
							 | 
						|
								                }
							 | 
						|
								                else if(this.facing == 38) //up
							 | 
						|
								                {
							 | 
						|
								                    this.y = this.y - this.speed
							 | 
						|
								                }
							 | 
						|
								                else if(this.facing == 40) //down
							 | 
						|
								                {
							 | 
						|
								                    this.y = this.y + this.speed
							 | 
						|
								                }
							 | 
						|
								
							 | 
						|
								            }
							 | 
						|
								
							 | 
						|
								            this.render = function()
							 | 
						|
								            {
							 | 
						|
								                context.fillStyle = "rgba(255, 0, 199, 1)"; //green
							 | 
						|
								                context.fillRect(this.x, this.y, this.width,this.height);
							 | 
						|
								
							 | 
						|
								            }
							 | 
						|
								        }
							 | 
						|
								        var bullets = [];
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								        function getRandomIntInclusive(min, max) {
							 | 
						|
								          min = Math.ceil(min);
							 | 
						|
								          max = Math.floor(max);
							 | 
						|
								          return Math.floor(Math.random() * (max - min + 1)) + min;
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								        //zombie
							 | 
						|
								        var Zombie = function(x,y)
							 | 
						|
								        {
							 | 
						|
								            this.x = x;
							 | 
						|
								            this.y = y;
							 | 
						|
								            this.width = 25;
							 | 
						|
								            this.height = 25;
							 | 
						|
								            this.speed = 3;
							 | 
						|
								
							 | 
						|
								            var side = getRandomIntInclusive(0,3);
							 | 
						|
								            var mid = getRandomIntInclusive(0,700);
							 | 
						|
								            if(side === 1)
							 | 
						|
								            {
							 | 
						|
								                this.x = mid;
							 | 
						|
								                this.y = 0;
							 | 
						|
								            }
							 | 
						|
								            else if(side === 2)
							 | 
						|
								            {
							 | 
						|
								                this.x = 700;
							 | 
						|
								                this.y = mid;
							 | 
						|
								            }
							 | 
						|
								            else if(side === 3)
							 | 
						|
								            {
							 | 
						|
								                this.y = 700;
							 | 
						|
								                this.x = mid;
							 | 
						|
								            }
							 | 
						|
								            else
							 | 
						|
								            {
							 | 
						|
								                this.x = 0;
							 | 
						|
								                this.y = mid;
							 | 
						|
								            }
							 | 
						|
								
							 | 
						|
								            this.render = function()
							 | 
						|
								            {
							 | 
						|
								                context.fillStyle = "rgba(0, 160, 0, 1)"; //green
							 | 
						|
								                context.fillRect(this.x, this.y, this.width,this.height);
							 | 
						|
								            }
							 | 
						|
								
							 | 
						|
								            this.move = function()
							 | 
						|
								            {
							 | 
						|
								                if(this.x  > p.x + this.speed)
							 | 
						|
								                    this.x -= this.speed;
							 | 
						|
								                else if(this.x + this.speed < p.x )
							 | 
						|
								                    this.x += this.speed;
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								                if(this.y > p.y + this.speed)
							 | 
						|
								                    this.y -= this.speed;
							 | 
						|
								                else if(this.y + this.speed < p.y )
							 | 
						|
								                    this.y += this.speed;
							 | 
						|
								            }
							 | 
						|
								        }
							 | 
						|
								        var zombies = [];
							 | 
						|
								        zombies.push(new Zombie());
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								        var render = function()
							 | 
						|
								        {
							 | 
						|
								            context.fillStyle = "#000000";
							 | 
						|
								            context.fillRect(0, 0, width, height);
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								            context.fillStyle = "rgba(255, 255, 255, 1)";
							 | 
						|
								            context.font= "20px Georgia";
							 | 
						|
								            context.fillText("Score: " + score,10,25);
							 | 
						|
								            for(i = 0; i< zombies.length; i++)
							 | 
						|
								            {
							 | 
						|
								                if(zombies[i] != -1)
							 | 
						|
								                {
							 | 
						|
								                    zombies[i].render();
							 | 
						|
								                }
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								            }
							 | 
						|
								            for(i = 0; i< bullets.length; i++)
							 | 
						|
								            {
							 | 
						|
								                if(bullets[i] != -1)
							 | 
						|
								                {
							 | 
						|
								                   bullets[i].render(); 
							 | 
						|
								                }
							 | 
						|
								
							 | 
						|
								            }
							 | 
						|
								
							 | 
						|
								            p.render();
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								        var update = function()
							 | 
						|
								        {
							 | 
						|
								            addZombie();
							 | 
						|
								            p.move();
							 | 
						|
								
							 | 
						|
								            for(i = 0; i< zombies.length; i++)
							 | 
						|
								            {
							 | 
						|
								
							 | 
						|
								                for(z = 0;z < bullets.length; z++)
							 | 
						|
								                {
							 | 
						|
								                    if(zombies[i] != -1 && bullets[z] != -1)
							 | 
						|
								                    {
							 | 
						|
								                        if(Math.abs(zombies[i].x - bullets[z].x) < 25 && Math.abs(zombies[i].y - bullets[z].y) < 25)
							 | 
						|
								                        {
							 | 
						|
								                            score++;
							 | 
						|
								                            zombies[i] = -1;
							 | 
						|
								                            bullets[z] = -1;
							 | 
						|
								                        }
							 | 
						|
								                    }
							 | 
						|
								                }
							 | 
						|
								
							 | 
						|
								                if(zombies[i] != -1)
							 | 
						|
								                {
							 | 
						|
								                   zombies[i].move(); 
							 | 
						|
								                }
							 | 
						|
								
							 | 
						|
								            }
							 | 
						|
								            for(i = 0; i< bullets.length; i++)
							 | 
						|
								            {
							 | 
						|
								                //checks to see if goes out of bounds
							 | 
						|
								                if(bullets[i].x < 0 || bullets[i].y < 0 || bullets[i].x > 700 || bullets[i].y > 700)
							 | 
						|
								                {
							 | 
						|
								                    bullets[i] = -1;
							 | 
						|
								                }
							 | 
						|
								
							 | 
						|
								                if(bullets[i] != -1)
							 | 
						|
								                {
							 | 
						|
								
							 | 
						|
								                   bullets[i].move();
							 | 
						|
								                }
							 | 
						|
								
							 | 
						|
								            }
							 | 
						|
								
							 | 
						|
								            for(i=0; i<zombies.length; i++)
							 | 
						|
								            {
							 | 
						|
								                if(zombies[i] != -1 && Math.abs(p.x - zombies[i].x) < 25 && Math.abs(p.y - zombies[i].y) < 25)
							 | 
						|
								                {
							 | 
						|
								                    dead = true;
							 | 
						|
								                }
							 | 
						|
								            }
							 | 
						|
								
							 | 
						|
								        }
							 | 
						|
								        var counter2 = 0;
							 | 
						|
								        var counter = 0;
							 | 
						|
								        var rate = 180;
							 | 
						|
								        var addZombie = function()
							 | 
						|
								        {
							 | 
						|
								            counter2++;
							 | 
						|
								            counter++;
							 | 
						|
								            var added = false;
							 | 
						|
								            if(counter >= rate)
							 | 
						|
								            {
							 | 
						|
								                for(i = 0; i< zombies.length; i++)
							 | 
						|
								                {
							 | 
						|
								                    if(zombies[i] == -1)
							 | 
						|
								                    {
							 | 
						|
								                       zombies[i] = new Zombie();
							 | 
						|
								                       added = true;
							 | 
						|
								                       break;
							 | 
						|
								                    }
							 | 
						|
								
							 | 
						|
								                }
							 | 
						|
								
							 | 
						|
								                if(added == false)
							 | 
						|
								                {
							 | 
						|
								                    zombies.push(new Zombie());
							 | 
						|
								                }
							 | 
						|
								
							 | 
						|
								                counter = 0;
							 | 
						|
								            }
							 | 
						|
								            if(counter2 >= 60)
							 | 
						|
								            {
							 | 
						|
								                if(rate > 30)
							 | 
						|
								                {
							 | 
						|
								                    rate = rate -5;
							 | 
						|
								                }
							 | 
						|
								                counter2 = 0;
							 | 
						|
								            }
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								        var sent = false;
							 | 
						|
								        
							 | 
						|
								        var tic = function()
							 | 
						|
								        {
							 | 
						|
								            if(dead)
							 | 
						|
								            {
							 | 
						|
								                context.fillStyle = "#000000";
							 | 
						|
								                context.fillRect(0, 0, width, height);
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								                context.fillStyle = "rgba(255, 255, 255, 1)"; //green
							 | 
						|
								                context.font= "20px Georgia";
							 | 
						|
								                context.fillText("You died with a score of " + score,200,340);
							 | 
						|
								                
							 | 
						|
								                if(!sent)
							 | 
						|
								                {
							 | 
						|
								                    document.body.innerHTML += '<form id="dynForm" action="insertScore.php" method="post"><input type="hidden" name="game_new_score" value=true><input type="hidden" name="game" value=2><input type="hidden" name="user_id_score" value=<?php echo $_SESSION['user_id']; ?>><input type="hidden" name="score_validate" value=' + score + '></form>';
							 | 
						|
								                    document.getElementById("dynForm").submit();
							 | 
						|
								                    sent = !sent;
							 | 
						|
								                }
							 | 
						|
								                
							 | 
						|
								
							 | 
						|
								            }
							 | 
						|
								            else
							 | 
						|
								            {
							 | 
						|
								                update();
							 | 
						|
								                render() 
							 | 
						|
								            }
							 | 
						|
								
							 | 
						|
								            animate(tic);
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								        window.addEventListener("keydown", function (event) 
							 | 
						|
								        {
							 | 
						|
								            if(event.keyCode >=37 && event.keyCode <=40)
							 | 
						|
								            {
							 | 
						|
								                p.facing = event.keyCode;
							 | 
						|
								            }
							 | 
						|
								
							 | 
						|
								            keysDown[event.keyCode] = true;
							 | 
						|
								        });
							 | 
						|
								
							 | 
						|
								        window.addEventListener("keyup", function (event) 
							 | 
						|
								        {
							 | 
						|
								            delete keysDown[event.keyCode];
							 | 
						|
								        });
							 | 
						|
								        animate(tic);
							 | 
						|
								
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								</script>
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								<div><canvas id="canvasZP" width="700" height="700"></canvas></div>
							 | 
						|
								<div><input type="submit" name="play" value="Play Game" onclick="this.blur();playZP()"/></div>
							 |