Game Development Reference
In-Depth Information
levelBackGroundTile = levelData.backGroundTile;
levelTimerStartSeconds = levelData.timerStartSeconds;
levelHeartScore = levelData.heartScore;
levelPlayerStartFacing = levelData.playerStartFacing;
levelSkullAdjust = levelData.skullAdjust;
levelWallAdjust =levelData.wallAdjust;
levelClockAdd = levelData.clockAdd;
levelPercentNeeded = levelData.percentNeeded;
levelWallDriveColor = levelData.wallDriveColor;
for (var rowCtr:int=0;rowCtr<worldRows;rowCtr++) {
var tempArray:Array=new Array();
for (var colCtr:int = 0; colCtr < worldCols; colCtr++) {
tileNum = levelData.map[rowCtr][colCtr];
if (int(tileSheetData[tileNum]) == TILE_WALL ||
int(tileSheetData[tileNum]) == TILE_MOVE ) {
numberToPush = tileNum;
}else {
switch(tileSheetData[tileNum]) {
case SPRITE_PLAYER:
numberToPush = levelBackGroundTile;
player.worldX = (colCtr * mapTileWidth) + (.5*mapTileWidth);
player.worldY = (rowCtr * mapTileHeight) + (.5 * mapTileHeight);
break;
case SPRITE_HEART:
numberToPush = tileNum;
heartsTotal++;
break;
case SPRITE_SKULL:
numberToPush = tileNum;
break;
case SPRITE_GOAL:
numberToPush = tileNum;
break;
case SPRITE_CLOCK:
numberToPush = tileNum;
break;
}
}
tempArray.push(numberToPush);
}
world.push(tempArray);
}
heartsNeeded = int(heartsTotal * levelPrecentNeeded);
}
Here is a detailed description of the main points of this function:
1.
First, we reset of the
world
array and initialize local variables for the loop through the
tiles. The
tileNum
will hold the current tile number from the tile sheet that corresponds