From d6283d57e4e6e5d480cded59755e8244e3454e69 Mon Sep 17 00:00:00 2001 From: Mal Date: Sun, 26 Jan 2020 23:25:18 +0100 Subject: [PATCH] Final collision fixup. --- graphics/mr-croc-walk-left.png | Bin 0 -> 8412 bytes graphics/mr-croc-walk-right.png | Bin 0 -> 1107 bytes graphics/tileset-landscape01.jpg | Bin 0 -> 10248 bytes js/module.js | 24 +++++++++--------------- js/retro/RetroArchitecture.js | 4 ++-- levels/level.json | 19 +++++++++++++++++++ 6 files changed, 30 insertions(+), 17 deletions(-) create mode 100644 graphics/mr-croc-walk-left.png create mode 100644 graphics/mr-croc-walk-right.png create mode 100644 graphics/tileset-landscape01.jpg create mode 100644 levels/level.json diff --git a/graphics/mr-croc-walk-left.png b/graphics/mr-croc-walk-left.png new file mode 100644 index 0000000000000000000000000000000000000000..db0f6bc493efbcccdd5a369bd53cd8be97443931 GIT binary patch literal 8412 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 Z`7Z`DtOTVq66pW{002ovPDHLkV1n-~?_~f0 literal 0 HcmV?d00001 diff --git a/graphics/tileset-landscape01.jpg b/graphics/tileset-landscape01.jpg new file mode 100644 index 0000000000000000000000000000000000000000..497f6a8bab12627bca5617d40f943085ee0029ec GIT binary patch literal 10248 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 Rk}#LQOkTb?dSv#|e*nlna?bz& literal 0 HcmV?d00001 diff --git a/js/module.js b/js/module.js index 5ed278c..d408b92 100644 --- a/js/module.js +++ b/js/module.js @@ -78,7 +78,7 @@ function MainLoop(timestamp) /* Movement left and right */ if (KeyLeft.isPressed()) { - let lastWallLeft = Math.max( + let lastWallLeft = Math.min( architecture.getWallLeft(mrCroc.getPositionHeadLeft()), architecture.getWallLeft(mrCroc.getPositionFootLeft()) ); @@ -89,7 +89,7 @@ function MainLoop(timestamp) mrCroc.position.x = lastWallLeft + mrCroc.getWidth() * 0.5 + 1; } } else if (KeyRight.isPressed()) { - let lastWallRight = Math.min( + let lastWallRight = Math.max( architecture.getWallRight(mrCroc.getPositionHeadRight()), architecture.getWallRight(mrCroc.getPositionFootRight()) ); @@ -106,9 +106,10 @@ function MainLoop(timestamp) context.clearRect(0, 0, window.innerWidth, window.innerHeight); architecture.draw(context); mrCroc.draw(context); + /* - context.fillRect(0, lastCeilingHeight, window.innerWidth, 1); - context.fillRect(0, lastGroundHeight, window.innerWidth, 1); + context.fillRect(0, ceilingHeight, window.innerWidth, 1); + context.fillRect(0, groundHeight, window.innerWidth, 1); context.fillStyle = 'black'; context.fillRect(lastWallRight, 0, 1, window.innerHeight); context.fillStyle = 'red'; @@ -118,6 +119,7 @@ function MainLoop(timestamp) mrCroc.getPositionHeadLeft().draw(context); mrCroc.getPositionFootLeft().draw(context); */ + lastRendered = timestamp; } @@ -131,7 +133,7 @@ const FRAME_DURATION = 1000 / FPS; const GAME_SPEED = 1; const GRAVITY = 2; -let levelJson = new FileLoader('levels/test.json'); +let levelJson = new FileLoader('levels/level.json'); const LEVEL = levelJson.getContent(); let lastRendered = undefined; @@ -145,10 +147,6 @@ let KeyJump = new Key('Space'); let loader = new ImageLoader(); -let image = new Image(); -image.src = 'graphics/mr-croc-stand.png'; -loader.addImage(image); - let imgAnimation = new Image(); imgAnimation.src = 'graphics/mr-croc-walk-right.png'; loader.addImage(imgAnimation); @@ -157,10 +155,6 @@ let imgAnimationB = new Image(); imgAnimationB.src = 'graphics/mr-croc-walk-left.png'; loader.addImage(imgAnimationB); -let imgBackground = new Image(); -imgBackground.src = 'graphics/ground.jpg'; -loader.addImage(imgBackground); - let imgArch = new Image(); imgArch.src = 'graphics/tileset-landscape01.jpg'; loader.addImage(imgArch); @@ -185,8 +179,8 @@ window.addEventListener( architecture = RetroArchitecture.createFromJson(LEVEL); mrCroc = new MrCroc(); - mrCroc.position.x = 300; - mrCroc.position.y = 100; + mrCroc.position.x = 250; + mrCroc.position.y = 0; window.requestAnimationFrame(MainLoop); } diff --git a/js/retro/RetroArchitecture.js b/js/retro/RetroArchitecture.js index 9a0de0a..6ae730e 100644 --- a/js/retro/RetroArchitecture.js +++ b/js/retro/RetroArchitecture.js @@ -112,7 +112,7 @@ export default class RetroArchitecture getWallRight(position) { - let tilePosition = this.getTileForPosition(new GeometryPoint(position.x, position.y), 1, -1); + let tilePosition = this.getTileForPosition(new GeometryPoint(position.x, position.y), 1, 0); while (tilePosition !== null && tilePosition.x < this.columns) { if (this.matrix[tilePosition.y][tilePosition.x] !== null) { @@ -127,7 +127,7 @@ export default class RetroArchitecture getWallLeft(position) { - let tilePosition = this.getTileForPosition(new GeometryPoint(position.x, position.y), -1,-1); + let tilePosition = this.getTileForPosition(new GeometryPoint(position.x, position.y), -1,0); while (tilePosition !== null && tilePosition.x > 0) { if (this.matrix[tilePosition.y][tilePosition.x] !== null) { diff --git a/levels/level.json b/levels/level.json new file mode 100644 index 0000000..7246516 --- /dev/null +++ b/levels/level.json @@ -0,0 +1,19 @@ +{ + "tileset": "graphics/tileset-landscape01.jpg", + "tiles": 8, + "scale": 3, + "rows": 10, + "columns": 17, + "matrix": [ + [6 ,6 ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,4 ,4 ], + [6 ,6 ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,4 ,4 ], + [6 ,6 ,null ,null ,null ,null ,null ,null ,0 ,0 ,0 ,0 ,null ,null ,null ,4 ,4 ], + [6 ,6 ,2 ,null ,null ,null ,null ,0 ,4 ,4 ,4 ,4 ,0 ,null ,null ,4 ,4 ], + [6 ,6 ,6 ,2 ,2 ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,4 ,4 ], + [5 ,5 ,5 ,5 ,5 ,1 ,null ,null ,null ,null ,null ,null ,null ,null ,0 ,4 ,4 ], + [4 ,4 ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,0 ,4 ,4 ,4 ], + [4 ,4 ,null ,null ,null ,null ,0 ,0 ,0 ,null ,null ,null ,0 ,4 ,4 ,4 ,4 ], + [4 ,4 ,0 ,0 ,0 ,null ,4 ,4 ,4 ,null ,null ,0 ,4 ,4 ,4 ,4 ,4 ], + [4 ,4 ,4 ,4 ,4 ,0 ,4 ,4 ,4 ,0 ,0 ,4 ,4 ,4 ,4 ,4 ,4 ] + ] +} \ No newline at end of file