HTML5 Canvas [163]
context.beginPath();
//draw everything offset by 1/2.
//Zero Relative 1/2 is if .5*width -1. Same for height
context.moveTo(-(tempRock.halfWidth-1),-(tempRock.halfHeight-1));
context.lineTo((tempRock.halfWidth-1),-(tempRock.halfHeight-1));
context.lineTo((tempRock.halfWidth-1),(tempRock.halfHeight-1));
context.lineTo(-(tempRock.halfWidth-1),(tempRock.halfHeight-1));
context.lineTo(-(tempRock.halfWidth-1),-(tempRock.halfHeight-1));
context.stroke();
context.closePath();
context.restore(); //pop old state on to screen
}
}
function renderSaucers() {
var tempSaucer = {};
var saucerLength = saucers.length-1;
for (var saucerCtr=saucerLength;saucerCtr>=0;saucerCtr--){
//ConsoleLog.log("saucer: " + saucerCtr);
tempSaucer = saucers[saucerCtr];
context.save(); //save current state in stack
context.setTransform(1,0,0,1,0,0); // reset to identity
//translate the canvas origin to the center of the player
//context.translate(this.x+halfWidth,this.y+halfHeight);
context.translate(tempSaucer.x,tempSaucer.y);
context.strokeStyle = '#ffffff';
context.beginPath();
//did not move to middle because it is drawn in exact space
context.moveTo(4,0);
context.lineTo(9,0);
context.lineTo(12,3);
context.lineTo(13,3);
context.moveTo(13,4);
context.lineTo(10,7);
context.lineTo(3,7);
context.lineTo(1,5);
context.lineTo(12,5);
context.moveTo(0,4);
context.lineTo(0,3);
context.lineTo(13,3);
context.moveTo(5,1);
context.lineTo(5,2);
context.moveTo(8,1);
context.lineTo(8,2);
context.moveTo(2,2);
context.lineTo(4,0);
context.stroke();
context.closePath();
context.restore(); //pop old state on to screen
}
}
function renderSaucerMissiles() {
var tempSaucerMissile = {};
var saucerMissileLength = saucerMissiles.length-1;
//ConsoleLog.log("saucerMissiles= " + saucerMissiles.length)
for (var saucerMissileCtr=saucerMissileLength;
saucerMissileCtr>=0;saucerMissileCtr--){
//ConsoleLog.log("draw player missile " + playerMissileCtr)
tempSaucerMissile = saucerMissiles[saucerMissileCtr];
context.save(); //save current state in stack
context.setTransform(1,0,0,1,0,0); // reset to identity
//translate the canvas origin to the center of the player
context.translate(tempSaucerMissile.x+1,tempSaucerMissile.y+1);
context.strokeStyle = '#ffffff';
context.beginPath();
//draw everything offset by 1/2. Zero Relative 1/2 is 15
context.moveTo(-1,-1);
context.lineTo(1,-1);
context.lineTo(1,1);
context.lineTo(-1,1);
context.lineTo(-1,-1);
context.stroke();
context.closePath();
context.restore(); //pop old state on to screen
}
}
function renderParticles() {
var tempParticle = {};
var particleLength = particles.length-1;
for (var particleCtr=particleLength;particleCtr>=0;particleCtr--){
tempParticle = particles[particleCtr];
context.save(); //save current state in stack
context.setTransform(1,0,0,1,0,0); // reset to identity
//translate the canvas origin to the center of the player
context.translate(tempParticle.x,tempParticle.y);
context.strokeStyle = '#ffffff';
context.beginPath();
//draw everything offset by 1/2. Zero Relative 1/2 is 15
context.moveTo(0,0);
context.lineTo(1,1);
context.stroke();
context.closePath();
context.restore(); //pop old state on to screen
}
}
function checkCollisions() {
//loop through rocks then missiles. There will always be rocks and a ship,
//but there will not always be missiles.
var tempRock = {};
var rocksLength = rocks.length-1;
var tempPlayerMissile = {};
var playerMissileLength = playerMissiles.length-1;
var saucerLength = saucers.length-1;
var tempSaucer = {};
var saucerMissileLength = saucerMissiles.length-1;
rocks: for (var rockCtr=rocksLength;rockCtr>=0;rockCtr--){
tempRock = rocks[rockCtr];
missiles:for (var playerMissileCtr=playerMissileLength;
playerMissileCtr>=0;playerMissileCtr--){
tempPlayerMissile = playerMissiles[playerMissileCtr];
if (boundingBoxCollide(tempRock,tempPlayerMissile)){
//ConsoleLog.log("hit rock");
createExplode(tempRock.x+tempRock.halfWidth,