Online Book Reader

Home Category

HTML5 Canvas [185]

By Root 6581 0

if (particlePool.length > 0){

newParticle = particlePool.pop();

newParticle.dx = Math.random()*3;

if (Math.random()<.5){

newParticle.dx *= -1;

}

newParticle.dy = Math.random()*3;

if (Math.random()<.5){

newParticle.dy *= -1;

}

newParticle.life = Math.floor(Math.random()*30+30);

newParticle.lifeCtr = 0;

newParticle.x = x;

newParticle.width = 2;

newParticle.height = 2;

newParticle.y = y;

newParticle.type = type;

//ConsoleLog.log("newParticle.life=" + newParticle.life);

particles.push(newParticle);

}

}

}

function boundingBoxCollide(object1, object2) {

var left1 = object1.x;

var left2 = object2.x;

var right1 = object1.x + object1.hitWidth;

var right2 = object2.x + object2.hitWidth;

var top1 = object1.y;

var top2 = object2.y;

var bottom1 = object1.y + object1.hitHeight;

var bottom2 = object2.y + object2.hitHeight;

if (bottom1 < top2) return(false);

if (top1 > bottom2) return(false);

if (right1 < left2) return(false);

if (left1 > right2) return(false);

return(true);

};

function splitRock(scale,x,y){

for (var newRockctr=0;newRockctr<2;newRockctr++){

var newRock = {};

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

if (scale==2){

newRock.scoreValue = medRockScore;

newRock.width = 32;

newRock.height = 32;

newRock.halfWidth = 16;

newRock.halfHeight = 16;

newRock.hitWidth = 24;

newRock.hitHeight = 24;

}else {

newRock.scoreValue = smlRockScore;

newRock.width = 24;

newRock.height = 24;

newRock.halfWidth = 12;

newRock.halfHeight = 12;

newRock.hitWidth = 16;

newRock.hitHeight = 16;

}

newRock.scale = scale;

newRock.x = x;

newRock.y = y;

newRock.dx = Math.random()*3;

if (Math.random()<.5){

newRock.dx *= -1;

}

newRock.dy = Math.random()*3;

if (Math.random()<.5){

newRock.dy *= -1;

}

if (Math.random()<.5){

newRock.rotationInc = -1;

}else{

newRock.rotationInc = 1;

}

newRock.animationDelay = Math.floor(Math.random()*3+1);

newRock.animationCount = 0;

newRock.rotation = 0;

ConsoleLog.log("new rock scale"+(newRock.scale));

rocks.push(newRock);

}

}

function addToScore(value){

score += value;

}

document.onkeydown = function(e){

e = e?e:window.event;

//ConsoleLog.log(e.keyCode + "down");

keyPressList[e.keyCode] = true;

}

document.onkeyup = function(e){

//document.body.onkeyup = function(e){

e = e?e:window.event;

//ConsoleLog.log(e.keyCode + "up");

keyPressList[e.keyCode] = false;

};

//*** application start

switchGameState(GAME_STATE_INIT);

const FRAME_RATE = 40;

frameRateCounter = new FrameRateCounter(FRAME_RATE);

//**** application loop

var intervalTime = 1000/FRAME_RATE;

setInterval(runGame, intervalTime );

}

//***** object prototypes *****

//*** consoleLog util object

//create constructor

function ConsoleLog(){

}

//create function that will be added to the class

console_log = function(message) {

if(typeof(console) !== 'undefined' && console != null) {

console.log(message);

}

}

//add class/static function to class by assignment

ConsoleLog.log = console_log;

//*** end console log object

//*** new FrameRateCounter object prototype

function FrameRateCounter(fps) {

if (fps == undefined){

this.fps = 40

}else{

this.fps = fps

}

this.lastFrameCount = 0;

var dateTemp = new Date();

this.frameLast = dateTemp.getTime();

delete dateTemp;

this.frameCtr = 0;

this.lastTime = dateTemp.getTime();

this.step = 1;

}

FrameRateCounter.prototype.countFrames = function() {

var dateTemp = new Date();

var timeDifference = dateTemp.getTime()-this.lastTime;

this.step = (timeDifference/1000)*this.fps;

this.lastTime = dateTemp.getTime();

this.frameCtr++;

if (dateTemp.getTime() >=this.frameLast+1000) {

ConsoleLog.log("frame event");

this.lastFrameCount = this.frameCtr;

this.frameCtr = 0;

this.frameLast = dateTemp.getTime();

}

delete dateTemp;

}

Your browser does not support HTML5 Canvas.

Creating

Return Main Page Previous Page Next Page

®Online Book Reader