From 48a0879a51b1a4a929342e3c2865eb65856266c3 Mon Sep 17 00:00:00 2001 From: stevenhowes <38082088+stevenhowes@users.noreply.github.com> Date: Tue, 13 Apr 2021 19:58:42 +0100 Subject: [PATCH] Make sure collision map is refreshed when moving between pages. Also, bottom left bounds. --- !TheEsc/!RunImage,ff8 | Bin 20440 -> 20680 bytes !TheEsc/c/Mission2 | 32 ++++++++++++++++++++++++++------ !TheEsc/mission2,ffd | Bin 10000 -> 10000 bytes 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/!TheEsc/!RunImage,ff8 b/!TheEsc/!RunImage,ff8 index 97e2ec9fb86e336edc19a6e12652301fd561418e..75af5846fc79b5c4f8a330a9c191fa2159c59428 100644 GIT binary patch delta 3354 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 blv@Ee`AIvka%<(b;sVW_@rtKw`cwQDwVIK& diff --git a/!TheEsc/c/Mission2 b/!TheEsc/c/Mission2 index 2e06537..dd54b92 100644 --- a/!TheEsc/c/Mission2 +++ b/!TheEsc/c/Mission2 @@ -34,6 +34,7 @@ struct TilePlayer_s { struct EntityLocation_s hitbox_bl; struct EntityLocation_s hitbox_tr; struct EntityLocation_s mapoffset; + struct EntityLocation_s lastmapoffset; struct EntityLocation_s localtile; int rawtile; }; @@ -235,7 +236,7 @@ int game2_check_collide() 100,100 )) { - if(((map[screen+1][x][y] >> 7) & 0x01)) + if(((map[0][x][y] >> 7) & 0x01)) { hit = 1; } @@ -251,7 +252,9 @@ void game2_tick_input() // Store in case we have a vertical collide TilePlayer.lastlocation.X = TilePlayer.location.X; TilePlayer.lastlocation.Y = TilePlayer.location.Y; - + TilePlayer.lastmapoffset.X = TilePlayer.mapoffset.X; + TilePlayer.lastmapoffset.Y = TilePlayer.mapoffset.Y; + // Up arrow if(input_readkey(57)) { @@ -260,6 +263,7 @@ void game2_tick_input() { TilePlayer.location.Y = 100; TilePlayer.mapoffset.Y += 10; + game2_fillmap(TilePlayer.mapoffset.X,TilePlayer.mapoffset.Y); } } @@ -269,15 +273,24 @@ void game2_tick_input() TilePlayer.location.Y -= 3 * (tick - lasttick); if(TilePlayer.location.Y < (10)) { - TilePlayer.location.Y = 900; - TilePlayer.mapoffset.Y -= 10; + if(TilePlayer.mapoffset.Y > 0) + { + TilePlayer.location.Y = 900; + TilePlayer.mapoffset.Y -= 10; + game2_fillmap(TilePlayer.mapoffset.X,TilePlayer.mapoffset.Y); + }else{ + TilePlayer.location.Y = TilePlayer.lastlocation.Y; + } } } + if(game2_check_collide()) { TilePlayer.location.X = TilePlayer.lastlocation.X; TilePlayer.location.Y = TilePlayer.lastlocation.Y; + TilePlayer.mapoffset.X = TilePlayer.lastmapoffset.X; + TilePlayer.mapoffset.Y = TilePlayer.lastmapoffset.Y; } // Store in case we have a horizontal collide @@ -292,6 +305,7 @@ void game2_tick_input() { TilePlayer.location.X = 100; TilePlayer.mapoffset.X += 10; + game2_fillmap(TilePlayer.mapoffset.X,TilePlayer.mapoffset.Y); } } @@ -301,8 +315,14 @@ void game2_tick_input() TilePlayer.location.X -= 3 * (tick - lasttick); if(TilePlayer.location.X < (10)) { - TilePlayer.location.X = 900; - TilePlayer.mapoffset.X -= 10; + if(TilePlayer.mapoffset.X > 0) + { + TilePlayer.location.X = 900; + TilePlayer.mapoffset.X -= 10; + game2_fillmap(TilePlayer.mapoffset.X,TilePlayer.mapoffset.Y); + }else{ + TilePlayer.location.X = TilePlayer.lastlocation.X; + } } } diff --git a/!TheEsc/mission2,ffd b/!TheEsc/mission2,ffd index 34fa3821cb1b378734328a60d7bc4a094473d2c4..da51a3ca22ea785d5562a09dd51cda490c222d9a 100644 GIT binary patch delta 74 zcmbQ>H^Fa09#<0_OcV^5ctV)52S`uWVH9TU1u-Tta&a}o0Z?S~7sf}dlljH^Fa09v2fFOcV^5ctV(w2S`uWVH9TM1u-Tta&a@mfx$#U|IJ?*AF;A<@bPm_ T-pG*vW^CTb5id9S07o$Z^G_1j