/** * */ var Main = {}; Main.asteroids = new Array(); Main.bullets = new Array(); Main.ship = new Ship(); Main.c; Main.ctx; Main.flag = new Array(false,false,false,false,0); Main.alive = true; Main.score = 0; Main.init = function () { c = document.getElementById("canvas"); Main.ctx = c.getContext("2d"); Main.ctx.strokeStyle="#FFFFFF"; window.addEventListener("keydown", Main.doMouseDown, false); window.addEventListener("keyup", Main.doMouseUp, false); //TODO: change to canvas window.requestAnimationFrame(Main.doFrameEvents); }; Main.doMouseDown = function (event) { switch (event.keyCode) { case 38: Main.flag[0] = true; break; //Up case 37: Main.flag[1] = true; break; //Left case 39: Main.flag[2] = true; break; //Right case 32: Main.flag[3] = true; break; //Space } } Main.doMouseUp = function (event) { //TODO: rename switch (event.keyCode) { case 38: Main.flag[0] = false; break; //Up case 37: Main.flag[1] = false; break; //Left case 39: Main.flag[2] = false; break; //Right case 32: Main.flag[3] = false; break; //Space } } Main.doFrameEvents = function () { //TODO: name it better Main.newLevel(); Main.move(); Main.checkCollisions(); Main.animate(); window.requestAnimationFrame(Main.doFrameEvents); } Main.newLevel = function () { if (Main.asteroids.length == 0) { Main.asteroids = new Array( new Asteroid(50,50,2,Math.random() * Math.PI * 2), new Asteroid(50,250,2,Math.random() * Math.PI * 2), new Asteroid(50,450,2,Math.random() * Math.PI * 2), new Asteroid(50,50,2,Math.random() * Math.PI * 2), new Asteroid(250,50,2,Math.random() * Math.PI * 2), new Asteroid(450,50,2,Math.random() * Math.PI * 2) ); } //TODO: this. } Main.checkCollisions = function () { for (var i=0;i 0) { angle = Math.random() * Math.PI * 2; Main.asteroids.push(new Asteroid(Main.asteroids[i].x,Main.asteroids[i].y,Main.asteroids[i].size-1,angle)); Main.asteroids.push(new Asteroid(Main.asteroids[i].x,Main.asteroids[i].y,Main.asteroids[i].size-1,angle + Math.PI / 2)); } Main.asteroids.splice(i,1); Main.bullets.splice(ii,1); break; } } } for (var i=0;i 0) { angle = Math.random() * Math.PI * 2; Main.asteroids.push(new Asteroid(Main.asteroids[i].x,Main.asteroids[i].y,Main.asteroids[i].size-1,angle)); Main.asteroids.push(new Asteroid(Main.asteroids[i].x,Main.asteroids[i].y,Main.asteroids[i].size-1,angle + Math.PI / 2)); } Main.asteroids.splice(i,1); Main.alive = false; Main.ship.hide(); } } } Main.move = function () { if (Main.alive) { if (Main.flag[4] == 15 || Main.flag[4] == 0) Main.flag[4] = 0; else Main.flag[4]++; if (Main.flag[0]) Main.ship.accelerate(); if (Main.flag[1]) Main.ship.turn(false); if (Main.flag[2]) Main.ship.turn(true); if (Main.flag[3] && Main.flag[4]==0) { Main.bullets.push(new Bullet(Main.ship.x + 15 * Math.cos(Main.ship.angle),Main.ship.y + 15 * Math.sin(Main.ship.angle),Main.ship.angle)); Main.flag[4] = 1; } } for (var i=0;i