HTML5 Canvas [182]
for (var saucerMissileCtr = saucerMissileLength;saucerMissileCtr>=0;
saucerMissileCtr--){
//ConsoleLog.log("update player missile" + playerMissileCtr)
tempSaucerMissile = saucerMissiles[saucerMissileCtr];
tempSaucerMissile.x += tempSaucerMissile.dx*frameRateCounter.step;
tempSaucerMissile.y += tempSaucerMissile.dy*frameRateCounter.step;
if (tempSaucerMissile.x > xMax) {
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 particleLength=particles.length-1;
ConsoleLog.log("particle=" + particleLength)
ConsoleLog.log("particlePool=" + particlePool.length)
for (var particleCtr=particleLength;particleCtr>=0;particleCtr--){
var remove = false;
tempParticle = particles[particleCtr];
tempParticle.x += tempParticle.dx*frameRateCounter.step;
tempParticle.y += tempParticle.dy*frameRateCounter.step;
tempParticle.lifeCtr++;
if (tempParticle.lifeCtr > tempParticle.life){
remove = true;
} else if ((tempParticle.x > xMax) || (tempParticle.x } if (remove) { particlePool.push(tempParticle) particles.splice(particleCtr,1) } } } function renderPlayerShip(x,y,rotation, scale) { //transformation context.save(); //save current state in stack context.globalAlpha = parseFloat(player.alpha); var angleInRadians = rotation * Math.PI / 180; var sourceX = Math.floor((player.rotation/10) % 10) * 32; var sourceY = Math.floor((player.rotation/10) /10) *32; if (player.thrust){ context.drawImage(shipTiles2, sourceX, sourceY, 32,32, player.x,player.y,32,32); }else{ context.drawImage(shipTiles, sourceX, sourceY, 32,32, player.x,player.y,32,32); } //restore context context.restore(); //pop old state on to screen context.globalAlpha = 1; } 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 var sourceX=Math.floor(1 % 4) * tempPlayerMissile.width; var sourceY=Math.floor(1 / 4) * tempPlayerMissile.height; context.drawImage(particleTiles, sourceX, sourceY, tempPlayerMissile.width,tempPlayerMissile.height, tempPlayerMissile.x,tempPlayerMissile.y, tempPlayerMissile.width,tempPlayerMissile.height); context.restore(); //pop old state on to screen } } function renderRocks() { var tempRock = {}; var rocksLength = rocks.length-1; for (var rockCtr = rocksLength;rockCtr>=0;rockCtr--){ context.save(); //save current state in stack tempRock = rocks[rockCtr]; var sourceX = Math.floor((tempRock.rotation) % 5) * tempRock.width; var sourceY = Math.floor((tempRock.rotation) /5) *tempRock.height; switch(tempRock.scale){ case 1: context.drawImage(largeRockTiles, sourceX, sourceY, tempRock.width,tempRock.height,tempRock.x,tempRock.y, tempRock.width,tempRock.height); break; case 2: context.drawImage(mediumRockTiles, sourceX, sourceY,tempRock.width,tempRock.height,tempRock.x,tempRock.y, tempRock.width,tempRock.height); break; case 3: context.drawImage(smallRockTiles, sourceX, sourceY,tempRock.width,tempRock.height,tempRock.x,tempRock.y, tempRock.width,tempRock.height); break; } context.restore(); //pop old state on to screen } } function renderSaucers() { var tempSaucer = {}; var saucerLength = saucers.length-1;