@@ -36,42 +36,46 @@ const wall = {
3636
3737const 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