From 9a5ca4b0de4cad437fb286137491dea738d7a33a Mon Sep 17 00:00:00 2001 From: GreenXenith <24834740+GreenXenith@users.noreply.github.com> Date: Fri, 24 Apr 2020 14:38:16 -0700 Subject: [PATCH] Better collision checking --- assets/floor.png | Bin 1369 -> 1730 bytes assets/wall_0.png | Bin 2445 -> 2445 bytes src/game.py | 3 +-- src/map.py | 5 ++--- 4 files changed, 3 insertions(+), 5 deletions(-) diff --git a/assets/floor.png b/assets/floor.png index 38a0f840b98068e4dfe1986e87397051fdb8da56..52b029c3e1f4c2b346615e1824621de92344aca3 100644 GIT binary patch delta 1695 zcmV;Q24MNw3c?MLBYy>1dQ@0+Qek%>aB^>EX>4U6ba`-PAZ2)IW&i+q+O=0(a^pA* z{O2k52n0azaU4FY<_3HGZBVkD*iI&y$x3BWB0&&DHvrnre}66a4=$z>UC@+ciP7T< zB^0iB$^L%LvpxFAhyA==bUw+w9ALD9R*udT&QUr0Z}RbKp?~Pb0O`X7xt8I#3#WSa zv*&jfQFynhV>{<>t&!K7$L?x~a6>#cbxd_PH4tp@lI&>_cfwEcp7vdEXJ38CV#9ae zaCa)iBz{q#;i%H0Nds-C4jThcPH34s%kImPxNsLQB*AW4oTSK*EG(U;hy*8m*+P5W zve)aBvGO2@GJioCValhs`<=j7?zOsykBG2)I(-GZm<OIYoQ$i_$REc(Wv6ZG|x;fWSu*rAR(8C!!#n0Z@hI zEP)#kAXOePl7mPDHW@s^+L)7Q%d+y(k5B#a(s-i(vqbAK- zw7MuUM2#_~Xfaolq>wbllu}M5)hsz=%`vB(bIG-E5rm|cSW?NQlv=T74X$d%>kwzY6)JYRmax+Ywai*DPnRS6{OIBFA z;z}#8vVZD@+KKAZ{SDOUM2$C6CYLVM(3_Ge+A7HMj2dP@i~|AjWC(!JY?%2>A+RB5 znEAqp3S}6nhRq;f9YsJGCb2HMu)8DoW!xNm{X5+FE66#6?gx-#H{}7h7pM)(gnc7+ zM4|cA3!-mPtDGyh=6Vl!8v(RxCFB`}=kcAV`hPEdvTfG&A5qiU?Kc=~_9>UDiM2H< zDQK)pVU?i0M;)XUuhfxA_b1+!ffuCk84)5HLM{k>8;M{ODI7@(#|9+S-i{HEInN{3 z0UjY0IL$S8#7i)FrhE;CQJb&AEpJUB$3w=7&5PE(8qkuk4|^g*O{Vh$TLZnrHW2H? zTz|0Xsg|IcI&>#Rx>A&!P`jC89f~nO6q)S3NhYhhtRT!Si@tz-28%wn7VVz5C+Lzw zJ)djX^p+B02*I~q;kHsi{AMus?kNC~QqxX`Wb+ezUdbEuz1b6yq3jLuSz`;Kx*1XZ z6uhXrFV{K)r_y%^3If!)6K{N z4R*UcF7-E}_B^t&v+=|ekqx44!b001=)*oWifKVFDzi22M(e+AUn=TnNVCK@{;e5@ zk7KVe`f>B_ci#DG`$EyNKAx~3Asf#XTV^-|v5JtDoP>7#f?RYl&V3p{-)KKp^nVy| zM>OF4TaR=APM)#jy&fUr{hN+IZC@(d(c{(D6)tcI0tof#mcy!Y&Ih$Jip2r8`ym>A zs>tYc5?o^K$UlgJv!fyHf&RtPZM1~sj@|U||DpCx6x}0?KZ@FOdw_)}5!Fzbp|_)Z z@ZuE(WPfqq)baa7D^Ua0uD&zNZM)WEC4W=MUv9^CDjNO0+PhuupF{R2qN8Eqvj);G zj97Pu#s0||?ujDDhgC<&C5|{5j(f?-`Gd%GpT@Kmponeh$2D|!Nbyb{I)CJ`$iCNp zM*j3*5ImW1{!IIn0YWN{w`ELo0$B=O4W|vE6$RxyHNdoU+#EPy3I1xAyKqP*>rK>s zL-tcq_bhwN*MPd*ak^$ZHr~%c567NMwTo>l@9CR{9Jp%%Hx^Ff#r+4-ni>>yZX0p{ z000JJOGiWi^8jrC0Jhl4fs-%<7=QgqL_t(o!|hiw4udcZbRx!13|**rKqXcN*8YHp z@&i7=io^pD6Eiyi5_dqZOD8asMAkA{<+h(DFLI9Jnm=>5~TYm|5brpUF zC~>NSaR_zUs45`_kaY`?fDAF&K2QjRklF@RT>>*Cm-GsOuC90qZ~#?jBY>*QPp;UX zJc4r#&ow+2fxlcsF9NtFHivvzS8Ox5R#)t@*1AvJ!@#T(_=Ycx_He$gnXvVJy$jw7 p007({<>sr^1Y2LM5!}!7ClqBqd_g`GbB6!`002ovPDHLkV1fu?C*=SD delta 1351 zcmV-N1-Sac4cQ8iBYy+&dQ@0+Qek%>aB^>EX>4U6ba`-PAZ2)IW&i+q+O<|&mg6c6 z{AU%j1SBCI%fVpInH}8aPw}vmbdqjQPhXQ*93iB#O2{_*f4`ggg^Q9z<1|E{ytlYq za)~o0(cZ3o$*Cjj#{IZx-O0RMU`T`4G_W5+#d8EP5hnic>;Rc2qvLs`h#|Zc<=3$J45pA}GoUOLl4Wm#Z zCb5kiRYRE??NlKP6<~C{bAV(nEJGJ1aN;6XNL(M(I7pHzQCJG^BI1njiG@boG~yMC zh+GM#OmIfn@_*?tUm08(trd$L5#i}+iNE5ML|0_#bXJlVh;h@5Z)K^e$d9B*KN zRJj5qI}s0VBI*dSu_w^5W#y^IQ2{?HUIMsDl0lYpihueEE~19AiaJ&G8Z>IsY`l2q z)q5X&KXW-qa6y9)A;geEjuKte=wpa6rkE2a!I9MDQ%EtTlrv&xXR>DO&alXN<4rcV z>E^ev#Vu{QpnQreT6_s5mQ-@(D%Dl3zJ?lWs(Gg!rDS%u>+bik$35-2q1Ku-*R=T- zT5PH1lYh0v>eKiO)@ZTDgQ;#8PS&6ep*tEbsP`G|oPjZR1ja*W00qsRGaJb{?#y-0 zY+{@WWq{PqO(mNRc~IzfVr_JCcVq4{Zw9&kiZ{N(oaxm40CQ}1`M}!?)@tvBWiU2R zVb7@*oW902b3`Q-^i) zd0h4%FB&CCG@s_=mF)IC=A8ONYi{#ft^lZ_B+2INf;aHrd$VgXIom7|E_YD@NlG*=DZNPn~x!xWd6&~5ru=sSMRKLS}e{ATLW zh`tBpl;-1eN^&mBc+DVuVnrJx)qC2Gk@R^ z&Hw-a24YJ`L;#5ZkpPyU2#qQL000SaNLh0L01FcU01FcV0GgZ_0002|NklJTAIq=(8XC14;4a@5o(uxxnv0}pB4xCll89B5-m!`b^L zyHHX-XeX^3m(rrWWcFUDHQGUFGk>h+p$_$jrr?8WBIhN23gGM~q0Nx=f!GO+<4saJ zI=u8j-h27}H4p+1qku&SRM^6(Y%jElOdFK)x@YqmQ9UYqGl1TwOTP%~0GDjTCIHwaIfi^FE2d~w3tylJZa_7F_@p6E zECH$o4K38V2XlfWm@icmxpnbh0C*Excia86rX;s6`bh5Y`3rvji0QT3C4T?_002ov JPDHLkV1hqQicSCk diff --git a/assets/wall_0.png b/assets/wall_0.png index fcbc193d195bb9e1111ee1c38019de8fbc965bd8..1edf73446f475e07b9dffc0651a255529e0fb663 100644 GIT binary patch delta 22 ecmeAb?iJq9&(0adz{C)^q+-&I%`@1)G6DcoH3$O$ delta 22 ecmeAb?iJq9&(7J&Fp*)}0*+p-%`@1)G6Dcs!UyL7 diff --git a/src/game.py b/src/game.py index def3851..043fbb1 100644 --- a/src/game.py +++ b/src/game.py @@ -32,7 +32,7 @@ map.generate() # Player player = Player() player.sprite.texture = spritesheet.SpriteSheet(assets.get("character.png"), 16, 24) -player.sprite.set_rect((0, 16, 16, 24)) +player.sprite.set_rect((0, 8, 16, 24)) # TODO: Scale character up x2 (1.5m) # TODO: Use asset loader for spritesheets player.sprite.texture.set_animation(0, 0, 0) @@ -42,7 +42,6 @@ player.set_pos(map.generator.rooms[0].x + 2, map.generator.rooms[0].y + 2) CENTER = [winsize[0] / 2, winsize[1] / 2] BGCOLOR = pygame.Color("#3e1202") - arial = pygame.font.SysFont("Arial", 10) # Mainloop diff --git a/src/map.py b/src/map.py index 670ece4..916e47c 100644 --- a/src/map.py +++ b/src/map.py @@ -20,7 +20,6 @@ class Map: # self.placer = loot.Placer() # self.map = self.placer.populate(self.map) - # TODO: Dont use rect h/w, use corners x/y def collides(self, pos, rect): px = int(math.floor(pos.x)) py = int(math.floor(pos.y)) @@ -29,8 +28,8 @@ class Map: if y >= 0 and y < len(self.map[1]) and x >=0 and x < len(self.map[1][y]): tile = self.map[1][y][x] if tile and tile.is_solid(): - if pos.x + (rect.width / self.METER) >= x and pos.x <= (x + 1) and \ - pos.y + (rect.height / self.METER) >= y and pos.y <= (y + 1): + if pos.x + (rect[2] / self.METER) >= x and pos.x + (rect[0] / self.METER) <= (x + 1) and \ + pos.y + (rect[3] / self.METER) >= y and pos.y + (rect[1] / self.METER) <= (y + 1): return True return False