Online Book Reader

Home Category

HTML5 Canvas [184]

By Root 6564 0

//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);

}

saucerMissiles.splice(saucerCtr,1);

tempSaucerMissile = null;

rocks.splice(rockCtr,1);

tempRock = null;

break rocks;

break saucerMissiles;

}

}

//check player against rocks

if (boundingBoxCollide(tempRock,player) && player.safe==false){

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

createExplode(tempRock.x+tempRock.halfWidth,

tempRock.halfHeight,10,tempRock.scale);

addToScore(tempRock.scoreValue);

if (tempRock.scale<3) {

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

}

rocks.splice(rockCtr,1);

tempRock=null;

playerDie();

}

}

//now check player against saucers and then saucers against player missiles

//and finally player against saucer missiles

playerMissileLength = playerMissiles.length-1;

saucerLength = saucers.length-1;

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

tempSaucer = saucers[saucerCtr];

missiles:for (var playerMissileCtr=playerMissileLength;

playerMissileCtr>=0;playerMissileCtr--){

tempPlayerMissile = playerMissiles[playerMissileCtr];

if (boundingBoxCollide(tempSaucer,tempPlayerMissile)){

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

createExplode(tempSaucer.x+tempSaucer.halfWidth,

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

addToScore(tempSaucer.scoreValue);

playerMissiles.splice(playerMissileCtr,1);

tempPlayerMissile = null;

saucers.splice(saucerCtr,1);

tempSaucer = null;

break saucers;

break missiles;

}

}

//player against saucers

if (boundingBoxCollide(tempSaucer,player) & player.safe==false){

ConsoleLog.log("hit player");

createExplode(tempSaucer.x+16,tempSaucer.y+16,10,tempRock.scale);

addToScore(tempSaucer.scoreValue);

saucers.splice(rockCtr,1);

tempSaucer = null;

playerDie();

}

}

//saucerMissiles against player

saucerMissileLength = saucerMissiles.length-1;

saucerMissiles:for (var saucerMissileCtr=saucerMissileLength;

saucerMissileCtr>=0;saucerMissileCtr--){

tempSaucerMissile = saucerMissiles[saucerMissileCtr];

if (boundingBoxCollide(player,tempSaucerMissile) & player.safe==false){

ConsoleLog.log("saucer missile hit player");

playerDie();

saucerMissiles.splice(saucerCtr,1);

tempSaucerMissile = null;

break saucerMissiles;

}

}

}

function firePlayerMissile(){

//ConsoleLog.log("fire playerMissile");

var newPlayerMissile = {};

newPlayerMissile.dx = 5*Math.cos(Math.PI*(player.rotation)/180);

newPlayerMissile.dy = 5*Math.sin(Math.PI*(player.rotation)/180);

newPlayerMissile.x = player.x+player.halfWidth;

newPlayerMissile.y = player.y+player.halfHeight;

newPlayerMissile.life = 60;

newPlayerMissile.lifeCtr = 0;

newPlayerMissile.width = 2;

newPlayerMissile.height = 2;

newPlayerMissile.hitHeight = 2;

newPlayerMissile.hitWidth = 2;

playerMissiles.push(newPlayerMissile);

}

function fireSaucerMissile(saucer) {

var newSaucerMissile = {};

newSaucerMissile.x = saucer.x+.5*saucer.width;

newSaucerMissile.y = saucer.y+.5*saucer.height;

newSaucerMissile.width = 2;

newSaucerMissile.height = 2;

newSaucerMissile.hitHeight = 2;

newSaucerMissile.hitWidth = 2;

newSaucerMissile.speed = saucer.missileSpeed;

//ConsoleLog.log("saucer fire");

//fire at player from small saucer

var diffx = player.x-saucer.x;

var diffy = player.y-saucer.y;

var radians = Math.atan2(diffy, diffx);

var degrees = 360 * radians / (2 * Math.PI);

newSaucerMissile.dx = saucer.missileSpeed*Math.cos(Math.PI*(degrees)/180);

newSaucerMissile.dy = saucer.missileSpeed*Math.sin(Math.PI*(degrees)/180);

newSaucerMissile.life = 160;

newSaucerMissile.lifeCtr = 0;

saucerMissiles.push(newSaucerMissile);

}

function playerDie() {

ConsoleLog.log("player die");

createExplode(player.x+player.halfWidth, player.y+player.halfWidth,50,4);

resetPlayer();

switchGameState(GAME_STATE_PLAYER_DIE);

}

function createExplode(x,y,num,type) {

playSound(SOUND_EXPLODE,.5);

for (var partCtr=0;partCtr

®Online Book Reader