X Tutup
Skip to content

Commit 2e4edff

Browse files
committed
Separate info on the default state of a map from info on the map that is currently loaded
1 parent ee684ee commit 2e4edff

File tree

1 file changed

+41
-32
lines changed

1 file changed

+41
-32
lines changed

files/script.js

Lines changed: 41 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -36,42 +36,46 @@ const wall = {
3636

3737
const maps = {
3838
currentMap: "map1",
39+
loadedMap: {
40+
boxes: [],
41+
walls: []
42+
},
3943
map1: {
4044
player: {
41-
initX: game.tileSize * 0, initY: game.tileSize * 0
45+
x: 0, y: 0
4246
},
4347
boxes: [
44-
{x: game.tileSize * 3, y: game.tileSize * 3, initX: game.tileSize * 3, initY: game.tileSize * 3},
45-
{x: game.tileSize * 3, y: game.tileSize * 5, initX: game.tileSize * 3, initY: game.tileSize * 5}
48+
{x: 3, y: 3},
49+
{x: 3, y: 5}
4650
],
4751
walls: [
48-
{x: game.tileSize * 1, y: game.tileSize * 1},
49-
{x: game.tileSize * 2, y: game.tileSize * 1},
50-
{x: game.tileSize * 7, y: game.tileSize * 1},
51-
{x: game.tileSize * 8, y: game.tileSize * 1},
52-
{x: game.tileSize * 1, y: game.tileSize * 2},
53-
{x: game.tileSize * 8, y: game.tileSize * 2},
54-
{x: game.tileSize * 5, y: game.tileSize * 4},
55-
{x: game.tileSize * 1, y: game.tileSize * 6},
56-
{x: game.tileSize * 8, y: game.tileSize * 6},
57-
{x: game.tileSize * 1, y: game.tileSize * 7},
58-
{x: game.tileSize * 2, y: game.tileSize * 7},
59-
{x: game.tileSize * 7, y: game.tileSize * 7},
60-
{x: game.tileSize * 8, y: game.tileSize * 7}
52+
{x: 1, y: 1},
53+
{x: 2, y: 1},
54+
{x: 7, y: 1},
55+
{x: 8, y: 1},
56+
{x: 1, y: 2},
57+
{x: 8, y: 2},
58+
{x: 5, y: 4},
59+
{x: 1, y: 6},
60+
{x: 8, y: 6},
61+
{x: 1, y: 7},
62+
{x: 2, y: 7},
63+
{x: 7, y: 7},
64+
{x: 8, y: 7}
6165
]
6266
},
6367
map2: {
6468
player: {
65-
initX: game.tileSize * 7, initY: game.tileSize * 0
69+
initX: 7, initY: 0
6670
},
6771
boxes: [
68-
{x: game.tileSize * 4, y: game.tileSize * 4, initX: game.tileSize * 4, initY: game.tileSize * 4}
72+
{initX: 4, initY: 4}
6973
],
7074
walls: [
71-
{x: game.tileSize * 1, y: game.tileSize * 1},
72-
{x: game.tileSize * 8, y: game.tileSize * 1},
73-
{x: game.tileSize * 1, y: game.tileSize * 7},
74-
{x: game.tileSize * 8, y: game.tileSize * 7}
75+
{x: 1, y: 1},
76+
{x: 8, y: 1},
77+
{x: 1, y: 7},
78+
{x: 8, y: 7}
7579
]
7680
}
7781
};
@@ -155,7 +159,7 @@ function movement() {
155159
}
156160

157161
function detectWall() {
158-
return maps[maps.currentMap].walls.some((wall) => {
162+
return maps.loadedMap.walls.some((wall) => {
159163
let alignedWithWall;
160164
let adjacentToWall;
161165

@@ -172,7 +176,7 @@ function movement() {
172176
}
173177

174178
function detectBox() {
175-
return maps[maps.currentMap].boxes.some((box) => {
179+
return maps.loadedMap.boxes.some((box) => {
176180
let perfectlyAlignedWithBox;
177181
let alignedWithBox;
178182
let adjacentToBox;
@@ -242,7 +246,7 @@ function draw() {
242246
game.tileSize * 0, 0, game.tileSize, game.tileSize,
243247
player.x, player.y, game.tileSize, game.tileSize
244248
);
245-
maps[maps.currentMap].boxes.forEach((box) => {
249+
maps.loadedMap.boxes.forEach((box) => {
246250
playCanvas.screen.drawImage(
247251
loadCanvas,
248252
game.tileSize * 1, 0, game.tileSize, game.tileSize,
@@ -274,31 +278,36 @@ Object.defineProperty(maps, "loadMap", {
274278
loadCanvas.screen.fillStyle = wall.color;
275279
loadCanvas.screen.fillRect(game.tileSize * 2, 0, game.tileSize, game.tileSize);
276280

277-
player.x = this[map].player.initX;
278-
player.y = this[map].player.initY;
281+
player.x = this[map].player.x * game.tileSize;
282+
player.y = this[map].player.y * game.tileSize;
279283

280284
playCanvas.screen.drawImage(
281285
loadCanvas,
282286
game.tileSize * 0, 0, game.tileSize, game.tileSize,
283287
player.x, player.y, game.tileSize, game.tileSize
284288
);
285289

290+
this.loadedMap.boxes = [];
286291
this[map].boxes.forEach((box) => {
287-
box.x = box.initX;
288-
box.y = box.initY;
289-
292+
let loadedBox = {x: box.x * game.tileSize, y: box.y * game.tileSize}
293+
this.loadedMap.boxes.push(loadedBox);
294+
290295
playCanvas.screen.drawImage(
291296
loadCanvas,
292297
game.tileSize * 1, 0, game.tileSize, game.tileSize,
293-
box.x, box.y, game.tileSize, game.tileSize
298+
loadedBox.x, loadedBox.y, game.tileSize, game.tileSize
294299
);
295300
});
296301

302+
this.loadedMap.walls = [];
297303
this[map].walls.forEach((wall) => {
304+
let loadedWall = {x: wall.x * game.tileSize, y: wall.y * game.tileSize}
305+
this.loadedMap.walls.push(loadedWall);
306+
298307
mapCanvas.screen.drawImage(
299308
loadCanvas,
300309
game.tileSize * 2, 0, game.tileSize, game.tileSize,
301-
wall.x, wall.y, game.tileSize, game.tileSize
310+
loadedWall.x, loadedWall.y, game.tileSize, game.tileSize
302311
);
303312
});
304313

0 commit comments

Comments
 (0)
X Tutup