From 98f8669a3c0b3a42c8825e65157a301d78c4a2a4 Mon Sep 17 00:00:00 2001 From: Weranda Date: Thu, 30 Mar 2023 20:10:29 +0200 Subject: [PATCH] =?UTF-8?q?dodanie=20kolizji=20ze=20ska=C5=82ami?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __pycache__/agent.cpython-310.pyc | Bin 1602 -> 2132 bytes __pycache__/map_add_ons.cpython-310.pyc | Bin 944 -> 965 bytes agent.py | 21 ++++++++++++++++++++- main.py | 5 ++--- map_add_ons.py | 2 +- 5 files changed, 23 insertions(+), 5 deletions(-) diff --git a/__pycache__/agent.cpython-310.pyc b/__pycache__/agent.cpython-310.pyc index 8c9f5e992d66e8ce7718bca4c9a918fcc644b04a..7a518266067f72acda8d79d563e52020261aab65 100644 GIT binary patch delta 710 zcmZ`%v2N5r5Z&2bJ9|FcF-M97A>e{i7#(R-0}^G3M1cenMtAGv>^tIUy%jQC!w*Cj z{iUKtlypc)h>9YWe*%e;iW$c_pkSq$otgJ`G=AgH{&^G@LEtew_rLGxAL=wLV08Ls z$JgpDd+O@mV-|ZK-hboM1LRa}$<7$yor7dK$6M?%&Jv84Qo|XnFb6TW#V|sQ6Q)JQ z6482BGi)vQO^AKXIypcWuhpN#R@8)(Vm{AwnvCbgWLDPa;%-1p1q1HE0KAW$d2(Z-+)IYnA)w`K!OipkG=G7#e%t)f>Zwmp^Pp=Ub_{05E5>@;JS2tww%EB) z>tU-@t63bG9$TPxw8ADRPfTXhPCDaK%{QoDasiZPfF*OC>T;eQS`$%Dx;BogR+thJLZoB^C3`6=*#gtIjRNwE{Kb?c$ DZC;h@ delta 150 zcmca2aEOO5pO=@50SFvUtEOCGoyeEZs4}rml_i)#lVjuhQ%sCDldG8JwXzsl7_wMu z7_wN+8JHO2SyC8l7~+}1Bx?!-P%)EV5hKtPO}5DonI$K4vFLJwOyyt{ViMZy!V=BM qs5N;3s}8dtP{9IrEjA^fWRc?JtL%zA93XWJ9LyY2Je-qRI068oFh diff --git a/__pycache__/map_add_ons.cpython-310.pyc b/__pycache__/map_add_ons.cpython-310.pyc index 2e6e836e138a3175fdd6920c8bdba971f85d184d..1b7c964115001f15f3e219edeac761b7c7e79257 100644 GIT binary patch delta 380 zcmY+Ay-ve06oqXk@S;FoO=Xc^?felXa4&50Z>$tlqgb=0uIVH3>~8}i=)Eo zY^DDhJ)=ai#)&|wtBil=H4fMxHNXb%CW7|*#1J&?jP$OkI(b z19%rfXW}nJ^IVucMWFVly^dVKyQl@iN#TvoYxndzS`KEu-erToF3YsOm)j<*+jsiO zC%BvpAumM6?Gsx~1Av99&$OYl_J`fhbyLQNlC(EQvU1TJth;Kz+2&F|ob|N9pn&)F4->-Oj4r& delta 335 zcmY*VJ5B>J6!d4a-k+BQl2Bx!qe1jJ0TMk22nfRpOAyJds4Q^?~Hm<^jhnJ;hesmn9-|#fB6LQ+_M$)%rZ+zbkZhv6jM){=mlq9 zbZQE=%DntXd8fdOVV6i$Q5)Vat@qf<|t=2A5b2i`MEmWChhgZZTR6|TH_tA#@aBq2vJ;&OOO=vbWDI3 o;a6PFNOX(c)r2c~be2KfrZ?-yyZhGV 0: self.y_change -= TILE_SIZE if keys[pygame.K_DOWN] and self.rect.y < 832 - 64: - self.y_change += TILE_SIZE \ No newline at end of file + self.y_change += TILE_SIZE + + def collide_blocks(self, direction): + if direction == "x": + hits = pygame.sprite.spritecollide(self,self.game.rock_sprites, False) + if hits: + if self.x_change > 0: + self.rect.x = hits[0].rect.left - self.rect.width + if self.x_change < 0: + self.rect.x = hits[0].rect.right + + if direction == "y": + hits = pygame.sprite.spritecollide(self,self.game.rock_sprites, False) + if hits: + if self.y_change > 0: + self.rect.y = hits[0].rect.top - self.rect.height + if self.y_change < 0: + self.rect.y = hits[0].rect.bottom diff --git a/main.py b/main.py index e846585..4f08412 100644 --- a/main.py +++ b/main.py @@ -24,7 +24,7 @@ class Game: def new(self): # tworzy się nowa sesja grania self.all_sprites = pygame.sprite.LayeredUpdates() - self.rock_sprites = pygame.sprite.Group() + self.rock_sprites = pygame.sprite.LayeredUpdates() self.agent = Agent(self,1,1) self.archer_ork = Archer_ork(self,10,10) self.infantry_ork = Infantry_ork(self,5,10) @@ -35,8 +35,7 @@ class Game: def update(self): # update postaci na mapie, związane z poruszaniem się self.all_sprites.update() - pygame.sprite.spritecollide(self.agent, self.rock_sprites, True) - #ograniczyć ruch agenta gdy jest kolizja ze skałami + def events(self): for event in pygame.event.get(): diff --git a/map_add_ons.py b/map_add_ons.py index 8167430..7a2c052 100644 --- a/map_add_ons.py +++ b/map_add_ons.py @@ -5,7 +5,7 @@ class Rocks(pygame.sprite.Sprite): def __init__(self,game,x,y): self.game = game - self.groups = self.game.rock_sprites + self.groups = self.game.all_sprites, self.game.rock_sprites pygame.sprite.Sprite.__init__(self, self.groups) self.x = x * TILE_SIZE