From 73981e35b85ce58da11a2fb0e5b7beb0c56c698b Mon Sep 17 00:00:00 2001 From: stevenhowes <38082088+stevenhowes@users.noreply.github.com> Date: Thu, 22 Apr 2021 21:10:53 +0100 Subject: [PATCH] Use different boxes for visual colliding and physical. --- !TheEsc/!RunImage,ff8 | Bin 20796 -> 20996 bytes !TheEsc/Spr,ff9 | Bin 112952 -> 113272 bytes !TheEsc/c/Mission2 | 31 ++++++++++++++++++++++++++----- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/!TheEsc/!RunImage,ff8 b/!TheEsc/!RunImage,ff8 index 7e7448fcd0772f393f7ffaf6ef72a662cec3f1e1..05cc8b50d9d41fc384e3f315f35147470b0a9ab0 100644 GIT binary patch delta 3110 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 diff --git a/!TheEsc/Spr,ff9 b/!TheEsc/Spr,ff9 index b98f6b7a1e2ecfd548ab68add573bad0927a00c4..ce8d8918ed66043c4755673f6eaf7551a008e093 100644 GIT binary patch delta 695 zcmZWmu}T9$5Z&3BJ9CLiBu1i%q_9y;BOavj6SPpS7Ox6|hS*pMAtdP(ge~?btR$jX zm>&@Q6OCdaTAXipZ;u4$Zg1Xu^X6u_d;E01zZ`FkF;>L6eCm1k9zFLq8)?SQ!ZtJ$ zE>bDR1>^?KEoZDC!rHa#`%T|xfjHn54+wXF5a-!)x7myt1d3lUm6Xp0%Ksd;76c5_ zi2SKu4M{nS2m`j5jXWn@sOaF>u+$|rCXr_Sijm&J8pwjg=o=}~6JQt8}2UNyShg@~ delta 591 zcmezIg>ABN!lyAmkx(FcPK)CJz%w z&=3{a019jW$N1$q7sx7@WzUOr@qzYGo9gyf>YT@jpo8^Z;E(&WQy) z;0Sz>o)3*cu<-O%t&CjLUu!W6Og6~lm_DVIQ3Rxs>Hq)9?@Z;UUut8N09mvBQyXKO FF#y25ei{G( diff --git a/!TheEsc/c/Mission2 b/!TheEsc/c/Mission2 index 66f516c..82020c4 100644 --- a/!TheEsc/c/Mission2 +++ b/!TheEsc/c/Mission2 @@ -33,6 +33,8 @@ struct TilePlayer_s { struct EntityLocation_s lastlocation; struct EntityLocation_s hitbox_bl; struct EntityLocation_s hitbox_tr; + struct EntityLocation_s drawbox_bl; + struct EntityLocation_s drawbox_tr; struct EntityLocation_s mapoffset; struct EntityLocation_s lastmapoffset; struct EntityLocation_s localtile; @@ -202,12 +204,20 @@ void game2_setup() screen_clear(); screen_flipbuffer(); screen_clear(); + TilePlayer.location.X = 125; TilePlayer.location.Y = 125; - TilePlayer.hitbox_bl.X = 0; + + TilePlayer.hitbox_bl.X = 30; TilePlayer.hitbox_bl.Y = 0; TilePlayer.hitbox_tr.X = 60; - TilePlayer.hitbox_tr.Y = 50; + TilePlayer.hitbox_tr.Y = 30; + + TilePlayer.drawbox_bl.X = 5; + TilePlayer.drawbox_bl.Y = 0; + TilePlayer.drawbox_tr.X = 60; + TilePlayer.drawbox_tr.Y = 75; + memset(map[0],0xFF,100); memset(map[1],0xFF,100); memset(map[2],0xFF,100); @@ -354,8 +364,8 @@ int game2_tick() { // Finds any tile we collide with if(game_hitbox_collide( - (TilePlayer.location.X + TilePlayer.hitbox_bl.X),(TilePlayer.location.Y + TilePlayer.hitbox_bl.Y), - (TilePlayer.hitbox_tr.X - TilePlayer.hitbox_bl.X),(TilePlayer.hitbox_tr.Y - TilePlayer.hitbox_bl.Y), + (TilePlayer.location.X + TilePlayer.drawbox_bl.X),(TilePlayer.location.Y + TilePlayer.drawbox_bl.Y), + (TilePlayer.hitbox_tr.X - TilePlayer.drawbox_bl.X),(TilePlayer.drawbox_tr.Y - TilePlayer.drawbox_bl.Y), x*100,y*100, 100,100 )) @@ -406,7 +416,18 @@ int game2_tick() game2_tick_input(); draw_sprite("man",TilePlayer.location.X,TilePlayer.location.Y); - + draw_rectangle( + (TilePlayer.location.X + TilePlayer.hitbox_bl.X), + (TilePlayer.location.Y + TilePlayer.hitbox_bl.Y), + (TilePlayer.location.X + TilePlayer.hitbox_tr.X), + (TilePlayer.location.Y + TilePlayer.hitbox_tr.Y) + ); + draw_rectangle( + (TilePlayer.location.X + TilePlayer.drawbox_bl.X), + (TilePlayer.location.Y + TilePlayer.drawbox_bl.Y), + (TilePlayer.location.X + TilePlayer.drawbox_tr.X), + (TilePlayer.location.Y + TilePlayer.drawbox_tr.Y) + ); return 0; }else{ /* screen_flipbuffer();