HTML5 Canvas [162]
tempSaucerMissile.x=-tempSaucerMissile.width;
}else if (tempSaucerMissile.x<-tempSaucerMissile.width){
tempSaucerMissile.x = xMax;
}
if (tempSaucerMissile.y > yMax) {
tempSaucerMissile.y=-tempSaucerMissile.height;
}else if (tempSaucerMissile.y<-tempSaucerMissile.height){
tempSaucerMissile.y = yMax;
}
tempSaucerMissile.lifeCtr++;
if (tempSaucerMissile.lifeCtr > tempSaucerMissile.life){
//remove
saucerMissiles.splice(saucerMissileCtr,1)
tempSaucerMissile = null;
}
}
}
function updateParticles() {
var tempParticle = {};
var particleLength = particles.length-1;
//ConsoleLog.log("particle=" + particleLength)
for (var particleCtr=particleLength;particleCtr>=0;particleCtr--){
var remove = false;
tempParticle = particles[particleCtr];
tempParticle.x += tempParticle.dx;
tempParticle.y += tempParticle.dy;
tempParticle.lifeCtr++;
//ConsoleLog.log("particle.lifeCtr=" + tempParticle.lifeCtr);
//try{
if (tempParticle.lifeCtr > tempParticle.life){
remove = true;
} else if ((tempParticle.x > xMax) || (tempParticle.x remove = true; } //} //catch(err) { // ConsoleLog.log ("error in particle"); // ConsoleLog.log("particle:" + particleCtr); //} if (remove) { particles.splice(particleCtr,1) tempParticle = null; } } } function renderPlayerShip(x,y,rotation, scale) { //transformation var angleInRadians = rotation * Math.PI / 180; 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(x+player.halfWidth,y+player.halfHeight); context.rotate(angleInRadians); context.scale(scale,scale); //drawShip context.strokeStyle = '#ffffff'; context.beginPath(); //hardcoding in locations //facing right context.moveTo(-10,-10); context.lineTo(10,0); context.moveTo(10,1); context.lineTo(-10,10); context.lineTo(1,1); context.moveTo(1,-1); context.lineTo(-10,-10); if (player.thrust==true && scale==1) { //check for scale==1 for ship indicator does not display with thrust context.moveTo(-4,-2); context.lineTo(-4,1); context.moveTo(-5,-1); context.lineTo(-10,-1); context.moveTo(-5,0); context.lineTo(-10,0); } context.stroke(); context.closePath(); //restore context context.restore(); //pop old state on to screen } function renderPlayerMissiles() { var tempPlayerMissile = {}; var playerMissileLength = playerMissiles.length-1; //ConsoleLog.log("render playerMissileLength=" + playerMissileLength); for (var playerMissileCtr=playerMissileLength; playerMissileCtr>=0;playerMissileCtr--){ //ConsoleLog.log("draw player missile " + playerMissileCtr) tempPlayerMissile = playerMissiles[playerMissileCtr]; 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(tempPlayerMissile.x+1,tempPlayerMissile.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 renderRocks() { var tempRock = {}; var rocksLength = rocks.length-1; for (var rockCtr=rocksLength;rockCtr>=0;rockCtr--){ tempRock = rocks[rockCtr]; var angleInRadians = tempRock.rotation * Math.PI / 180; //ConsoleLog.log("render rock rotation"+(tempRock.rotation)); 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(tempRock.x+tempRock.halfWidth, tempRock.y+tempRock.halfHeight); //ConsoleLog.log("render rock x"+(tempRock.x+tempRock.halfWidth)); //ConsoleLog.log("render rock y"+(tempRock.y+tempRock.halfHeight)); context.rotate(angleInRadians); context.strokeStyle =