Online Book Reader

Home Category

HTML5 Canvas [183]

By Root 6545 0

for (var saucerCtr = saucerLength;saucerCtr>=0;saucerCtr--){

//ConsoleLog.log("saucer: " + saucerCtr);

tempSaucer = saucers[saucerCtr];

context.save(); //save current state in stack

var sourceX = 0;

var sourceY = 0;

context.drawImage(saucerTiles, sourceX, sourceY, 30,15,

tempSaucer.x,tempSaucer.y,30,15);

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

var sourceX = Math.floor(0 % 4) * tempSaucerMissile.width;

var sourceY = Math.floor(0 / 4) * tempSaucerMissile.height;

context.drawImage(particleTiles, sourceX, sourceY,

tempSaucerMissile.width,tempSaucerMissile.height,

tempSaucerMissile.x,tempSaucerMissile.y,tempSaucerMissile.width,

tempSaucerMissile.height);

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

var tile;

//console.log("part type=" + tempParticle.type)

switch(tempParticle.type){

case 0: // saucer

tile = 0;

break;

case 1: //large rock

tile = 2

break;

case 2: //medium rock

tile = 3;

break;

case 3: //small rock

tile = 0;

break;

case 4: //player

tile = 1;

break;

}

var sourceX = Math.floor(tile % 4) * tempParticle.width;

var sourceY = Math.floor(tile / 4) * tempParticle.height;

context.drawImage(particleTiles, sourceX, sourceY,

tempParticle.width,tempParticle.height,tempParticle.x,

tempParticle.y,tempParticle.width,tempParticle.height);

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,

tempRock.y+tempRock.halfHeight,10,tempRock.scale);

if (tempRock.scale<3) {

splitRock(tempRock.scale+1, tempRock.x, tempRock.y);

}

addToScore(tempRock.scoreValue);

playerMissiles.splice(playerMissileCtr,1);

tempPlayerMissile = null;

rocks.splice(rockCtr,1);

tempRock = null;

break rocks;

break missiles;

}

}

saucers:for (var saucerCtr=saucerLength;saucerCtr>=0;saucerCtr--){

tempSaucer = saucers[saucerCtr];

if (boundingBoxCollide(tempRock,tempSaucer)){

//ConsoleLog.log("hit rock");

createExplode(tempSaucer.x+tempSaucer.halfWidth,

tempSaucer.y+tempSaucer.halfHeight,10,0);

createExplode(tempRock.x+tempRock.halfWidth,

tempRock.y+tempRock.halfHeight,10,tempRock.scale);

if (tempRock.scale<3) {

splitRock(tempRock.scale+1, tempRock.x, tempRock.y);

}

saucers.splice(saucerCtr,1);

tempSaucer = null;

rocks.splice(rockCtr,1);

tempRock = null;

break rocks;

break saucers;

}

}

//saucer missiles against rocks

//this is done here so we don't have to loop through

//rocks again as it would probably

//be the biggest array

saucerMissiles:for (var saucerMissileCtr=saucerMissileLength;

saucerMissileCtr>=0;saucerMissileCtr--){

tempSaucerMissile = saucerMissiles[saucerMissileCtr];

if (boundingBoxCollide(tempRock,tempSaucerMissile)){

Return Main Page Previous Page Next Page

®Online Book Reader