Online Book Reader

Home Category

HTML5 Canvas [199]

By Root 6456 0
&&

tempEnemy.col==tempEnemy2.col && eCtr != eCtr2){

tempEnemy.hit = true;

tempEnemy2.hit = true;

}

}

}

switchGameState(GAME_STATE_EVALUATE_OUTCOME);

}

function gameStateEvaluateOutcome(){

if (player.hit){

player.dead = true;

createExplode(player);

}

for (var eCtr=enemy.length-1;eCtr>=0;eCtr--){

var tempEnemy = enemy[eCtr];

if (tempEnemy.hit){

score += enemyScore;

tempEnemy.dead = true;

createExplode(tempEnemy)

enemy.splice(eCtr,1);

tempEnemy = null;

}

}

switchGameState(GAME_STATE_ANIMATE_EXPLODE);

}

function createExplode(object){

var newExplode = {};

newExplode.currentTile = 0;

newExplode.row = object.row;

newExplode.col = object.com;

newExplode.x = object.x;

newExplode.y = object.y;

newExplode.rotation = 0;

explosions.push(newExplode);

}

function gameStateAnimateExplode(){

for (var eCtr=explosions.length-1;eCtr>=0;eCtr--){

var tempExplosion = explosions[eCtr];

renderPlayField();

tempExplosion.currentTile++;

if (tempExplosion.currentTile == explodeTiles.length){

explosions.splice(eCtr,1);

tempExplode = null;

}

}

if (explosions.length==0){

switchGameState(GAME_STATE_CHECK_FOR_GAME_OVER);

}

}

function gameStateCheckForGameOver() {

if (player.dead){

switchGameState(GAME_STATE_PLAYER_LOSE);

}else if (player.win){

switchGameState(GAME_STATE_PLAYER_WIN)

}else{

switchGameState(GAME_STATE_WAIT_FOR_PLAYER_MOVE);

}

}

function drawPlayField(){

for (rowCtr=0;rowCtr<15;rowCtr++){

for (colCtr=0;colCtr<15;colCtr++) {

var sourceX = Math.floor((playField[rowCtr][colCtr]) % 8) * 32;

var sourceY = Math.floor((playField[rowCtr][colCtr]) /8) *32;

if (playField[rowCtr][colCtr] != roadTile){

context.drawImage(tileSheet, 0, 0,32,32, colCtr*32,

rowCtr*32,32,32);

}

context.drawImage(tileSheet, sourceX, sourceY,32,32,

colCtr*32,rowCtr*32,32,32);

}

}

}

function drawPlayer(){

if (!player.dead){

context.save();

context.setTransform(1,0,0,1,0,0);

context.translate(player.x+16, player.y+16);

var angleInRadians = player.rotation * Math.PI / 180;

context.rotate(angleInRadians);

var sourceX = Math.floor(playerTiles[player.currentTile] % 8) * 32;

var sourceY = Math.floor(playerTiles[player.currentTile] /8) *32;

context.drawImage(tileSheet, sourceX, sourceY,32,32,-16,-16,32,32);

context.restore();

}

}

function drawEnemy(){

for (var eCtr=enemy.length-1;eCtr>=0;eCtr--){

tempEnemy = enemy[eCtr];

if (!tempEnemy.dead){

context.save();

context.setTransform(1,0,0,1,0,0);

context.translate(tempEnemy.x+16, tempEnemy.y+16);

var angleInRadians = tempEnemy.rotation * Math.PI / 180;

context.rotate(angleInRadians);

var sourceX = Math.floor(enemyTiles[tempEnemy.currentTile] % 8) * 32;

var sourceY = Math.floor(enemyTiles[tempEnemy.currentTile] /8) *32;

context.drawImage(tileSheet, sourceX, sourceY,32,32,-16,-16,32,32);

context.restore();

}

}

}

function drawExplosions(){

for (var eCtr=explosions.length-1;eCtr>=0;eCtr--){

tempExplosion = explosions[eCtr];

context.save();

var sourceX = Math.floor(explodeTiles[tempExplosion.currentTile]

% 8) * 32;

var sourceY = Math.floor(explodeTiles[tempExplosion.currentTile] /8) *32;

context.drawImage(tileSheet, sourceX, sourceY,32,32,

tempExplosion.x,tempExplosion.y,32,32);

context.restore();

}

}

function fillBackground() {

// draw background and text

context.fillStyle = '#000000';

context.fillRect(xMin, yMin, xMax, yMax);

}

function setTextStyleTitle() {

context.fillStyle = '#54ebeb';

context.font = '20px _sans';

context.textBaseline = 'top';

}

function renderPlayField() {

fillBackground();

drawPlayField();

drawPlayer();

drawEnemy();

drawExplosions();

}

document.onkeydown = function(e){

e = e?e:window.event;

keyPressList[e.keyCode]=true;

}

document.onkeyup = function(e){

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

e = e?e:window.event;

keyPressList[e.keyCode] = false;

};

//*** application start

switchGameState(GAME_STATE_INIT);

const FRAME_RATE = 40;

frameRateCounter = new FrameRateCounter(FRAME_RATE);

//**** application loop

Return Main Page Previous Page Next Page

®Online Book Reader