|
1 |
const TILE_WIDTH = 80; |
|
2 |
const TILE_HEIGHT = 60; |
|
3 |
|
|
4 |
var tileMap = [ |
|
5 |
[[0,1],[8,1],[0,13],[4,1],[0,8],[8,1],[0,5],[4,1],[0,7],[8,1],[0,6],[8,1],[0,2]], |
|
6 |
[[0,8],[4,1],[0,3],[4,1],[0,6],[8,1],[0,28]], |
|
7 |
[[0,8],[0,24],[4,1],[0,3],[4,1],[0,6],[8,1],[0,4]], |
|
8 |
[[0,11],[4,1],[0,15],[4,1],[0,13],[4,1],[0,6]], |
|
9 |
[[0,16],[8,1],[0,19],[8,1],[0,11]], |
|
10 |
[[0,9],[4,1],[0,38]], |
|
11 |
[[0,48]], |
|
12 |
[[1,48]] |
|
13 |
]; |
|
14 |
|
1 |
15 |
Crafty.init(800, 600, document.getElementById('gamecanvas')); |
2 |
16 |
|
|
17 |
var assets = { |
|
18 |
'tiles': ['img/tile-1.png', 'img/platform.png', 'img/platformx2.png'] |
|
19 |
}; |
3 |
20 |
initialiseGame(); |
4 |
21 |
|
5 |
22 |
function initialiseGame () { |
6 |
|
loadBackground(); |
|
23 |
Crafty.load(assets, function(){ |
|
24 |
loadBackground(); |
|
25 |
generateMap(); |
|
26 |
}); |
7 |
27 |
} |
8 |
28 |
|
9 |
29 |
function loadBackground () { |
10 |
30 |
Crafty.background('#3BB9FF'); |
11 |
|
Crafty.background('#FFFFFF url(img/bg.png) repeat-x center center'); |
|
31 |
//Crafty.background('#FFFFFF url(img/bg.png) repeat-x center center'); |
12 |
32 |
} |
|
33 |
|
|
34 |
function generateMap () { |
|
35 |
const Y_OFFSET = 600 - (tileMap.length * TILE_HEIGHT); |
|
36 |
tileMap.map(function (tileRow, rowIdx) { |
|
37 |
var xPos = 0; |
|
38 |
var yPos = 0; |
|
39 |
tileRow.map(function (tile, tileIdx) { |
|
40 |
yPos = Y_OFFSET + (rowIdx * 60); |
|
41 |
var tileType = tile[0]; |
|
42 |
var tileNum = tile[1]; |
|
43 |
if (tileType === 0){ |
|
44 |
xPos += (tileNum * 80); |
|
45 |
} |
|
46 |
if (tileType === 1) { |
|
47 |
for(var i=0; i < tileNum; i++){ |
|
48 |
Crafty.e('FloorTile, 2D, DOM, Image, Collision') |
|
49 |
.attr({ x: xPos, y: yPos, w: TILE_WIDTH, h: TILE_HEIGHT }) |
|
50 |
.image(Crafty.assets['img/tile-' + tileType + '.png'].src); |
|
51 |
xPos += 80; |
|
52 |
} |
|
53 |
} |
|
54 |
else{ |
|
55 |
if (tileType === 4) { |
|
56 |
Crafty.e('Platform') |
|
57 |
.setImage('img/platform.png') |
|
58 |
.setPlatform(xPos, yPos, 1) |
|
59 |
.addCoins(Crafty.math.randomInt(1,2)); |
|
60 |
} |
|
61 |
else if (tileType === 8) { |
|
62 |
Crafty.e('Platform') |
|
63 |
.setImage('img/platformx2.png') |
|
64 |
.setPlatform(xPos, yPos, 2) |
|
65 |
.addCoins(Crafty.math.randomInt(1,2)); |
|
66 |
} |
|
67 |
xPos += 80; |
|
68 |
} |
|
69 |
}); |
|
70 |
}); |
|
71 |
} |