HTML and CSS Reference
In-Depth Information
Example 4-10. Painting the tile map to the Canvas
var
var tileSheet = new
new Image ();
tileSheet . addEventListener ( 'load' , eventSheetLoaded , false
false );
tileSheet . src = "tanks_sheet.png" ;
var
var mapIndexOffset = - 1 ;
var
var mapRows = 10 ;
var
var mapCols = 10 ;
var
var tileMap = [
[ 32 , 31 , 31 , 31 , 1 , 31 , 31 , 31 , 31 , 32 ]
,
[ 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ]
,
[ 32 , 1 , 26 , 1 , 26 , 1 , 26 , 1 , 1 , 32 ]
,
[ 32 , 26 , 1 , 1 , 26 , 1 , 1 , 26 , 1 , 32 ]
,
[ 32 , 1 , 1 , 1 , 26 , 26 , 1 , 26 , 1 , 32 ]
,
[ 32 , 1 , 1 , 26 , 1 , 1 , 1 , 26 , 1 , 32 ]
,
[ 32 , 1 , 1 , 1 , 1 , 1 , 1 , 26 , 1 , 32 ]
,
[ 1 , 1 , 26 , 1 , 26 , 1 , 26 , 1 , 1 , 1 ]
,
[ 32 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 32 ]
,
[ 32 , 31 , 31 , 31 , 1 , 31 , 31 , 31 , 31 , 32 ]
];
function
function eventSheetLoaded () {
drawScreen ()
}
function
function drawScreen () {
for
for ( var
var rowCtr = 0 ; rowCtr < mapRows ; rowCtr ++ ) {
for
for ( var
var colCtr = 0 ; colCtr < mapCols ; colCtr ++ ){
var
var tileId = tileMap [ rowCtr ][ colCtr ] + mapIndexOffset ;
var
var sourceX = Math . floor ( tileId % 8 ) * 32 ;
var
var sourceY = Math . floor ( tileId / 8 ) * 32 ;
context . drawImage ( tileSheet , sourceX ,
sourceY , 32 , 32 , colCtr * 32 , rowCtr * 32 , 32 , 32 );
}
}
}
Search WWH ::




Custom Search