diff --git a/games/astroids.html b/games/astroids.html index d9dcfa4..1db9d3f 100644 --- a/games/astroids.html +++ b/games/astroids.html @@ -63,6 +63,48 @@ //objects + // + //bullet class + var Bullet = function(dir, x, y) + { + console.log(dir + " " + x + " " + y); + + this.dir = dir; + + this.x = x; + + this.y = y; + + this.speed = 5; + + this.width = 10; + this.height =10; + + this.move = function() + { + + sonsole.log("move"); + this.x += this.speed * Math.sin(this.dir); + + this.y += this.speed * Math.cos(this.dir); + } + + this.render = function() + { + context.fillStyle = "rgba(255, 255, 255 , 1)"; //green + context.beginPath(); + context.arc(this.x,this.y,this.width,0,2*Math.PI); + context.fill(); + console.log(this.x); + + } + + } + //array of bullets + var bullets = []; + + bullets.push(new Bullet(Math.PI, 100, 100)); + var Player = function(x,y) { @@ -74,35 +116,56 @@ this.speed = 4; - this.facing = 40; + this.dir = Math.PI; - this.updateDirection = function(key) - { - facing = key; - } + this.render = function() { context.fillStyle = "rgba(255, 255, 255, 1)"; //white 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; + //one degree + this.dir += Math.PI / 360; } else if(value == 39) { - this.x = this.x + this.speed; + //one degree + this.dir -= Math.PI / 360; + } + else if(value == 38) // up + { + this.x += this.speed * Math.sin(this.dir); + + this.y += this.speed * Math.cos(this.dir); + } + else if(value == 40) //down + { + this.x -= this.speed * Math.sin(this.dir); + + this.y -= this.speed * Math.cos(this.dir); + } + else if(value == 32) //shoot + { + this.shoot(); + } + } //collisions @@ -128,17 +191,50 @@ { this.x += this.speed; } - else if(this.x > width) + else if(this.x > width- this.width) { this.x -= this.speed; } + if(this.y < 0) + { + this.y += this.speed; + + } + else if(this.y > height) + { + this.y -= this.speed; + + } + + } + + this.shoot = function() + { + var dimmed = false; + + for(i = 0; i> bullets.size; i++) + { + if(bullets[i] == -1) + { + dimmed = true; + bullets[i] = new Bullet(this.dir, this.x, this.y); + } + } + + if(dimmed == false) + { + bullets.push(new Bullet(this.dir, this.x, this.y)); + } + } } - //player object var p = new Player(350, 850); + + + //object that falls from the sky var Astroid = function(size) @@ -202,11 +298,7 @@ return true; } - - if() - { - - } + } } @@ -234,6 +326,14 @@ } } + + for (i = 0; i < bullets.lenght; i++) + { + if(bullets[i] != -1) + { + bullets[i].render(); + } + } //console.log('render was called'); //context.fillStyle = "rgba(0, 128, 0 ,1)"; //green @@ -259,6 +359,17 @@ } } } + console.log(bullets.lenght); + for (i = 0; i < bullets.lenght; i++) + { + if(bullets[i] != -1) + { + if(bullets[i].move()) + { + bullets[i] = -1; + } + } + } }