From 82b21db6c405206563191492b89ed9e5687d1fac Mon Sep 17 00:00:00 2001 From: s473569 Date: Fri, 31 Mar 2023 15:26:54 +0200 Subject: [PATCH 1/3] unknown class --- agent.py | 9 +++++++++ main.py | 4 ++++ unknown_mob.py | 29 +++++++++++++++++++++++++++++ zdjecia/dragon.jpg | Bin 0 -> 12647 bytes 4 files changed, 42 insertions(+) create mode 100644 unknown_mob.py create mode 100644 zdjecia/dragon.jpg diff --git a/agent.py b/agent.py index 7aa4e2e..f26c158 100644 --- a/agent.py +++ b/agent.py @@ -77,6 +77,15 @@ class Agent(pygame.sprite.Sprite): hits_infantry_ork = pygame.sprite.spritecollide(self, self.game.infantry_orks, False) hits_infantry_ork2 = pygame.sprite.spritecollide(self, self.game.infantry_orks2, False) hits_sauron = pygame.sprite.spritecollide(self, self.game.sauronL, False) + #hits_unknown_mob = pygame.sprite.spritecollide(self, self.game.unknown_mobs, False) #unknown mob + #if hits_unknown_mob: + # self.game.unknown_mob.kill() + # self.game.archer_orks = pygame.sprite.LayeredUpdates() + # self.game.archer_ork = Archer_ork(self,3,2) + + + + if hits_archer_ork: if self.game.archer_ork.level > self.level or self.game.archer_ork.damage > self.health: self.kill() diff --git a/main.py b/main.py index 812c845..ec4a462 100644 --- a/main.py +++ b/main.py @@ -6,6 +6,7 @@ from archer_ork import * from infantry_ork import * from infantry_ork2 import * from sauron import * +#from unknown_mob import * #unknown mob class Game: @@ -29,14 +30,17 @@ class Game: self.infantry_orks = pygame.sprite.LayeredUpdates() self.infantry_orks2 = pygame.sprite.LayeredUpdates() self.sauronL = pygame.sprite.LayeredUpdates() + #self.unknown_mobs = pygame.sprite.LayeredUpdates() #unknown mob self.agent = Agent(self,1,1) self.archer_ork = Archer_ork(self,10,10) self.infantry_ork = Infantry_ork(self,10,4) self.infantry_ork2 = Infantry_ork2(self,6,3) self.sauron = Sauron(self, 1, 10) + #self.unknown_mob = Unknown_mob(self,8,8) #unknown mob for y in range(5): self.rock = Rocks(self,3,y) + def update(self): self.all_sprites.update() diff --git a/unknown_mob.py b/unknown_mob.py new file mode 100644 index 0000000..86378c6 --- /dev/null +++ b/unknown_mob.py @@ -0,0 +1,29 @@ +import pygame +from config import * + +class Unknown_mob(pygame.sprite.Sprite): + + + def __init__(self, game, x, y): + self.game = game + self.groups = self.game.all_sprites, self.game.unknown_mobs + pygame.sprite.Sprite.__init__(self, self.groups) + + self.x = x * TILE_SIZE + self.y = y * TILE_SIZE + self.width = TILE_SIZE + self.height = TILE_SIZE + + self.UNKNOWN_MOB_IMG = pygame.image.load("./zdjecia/dragon.jpg") + self.UKNOWN_MOB = pygame.transform.scale(self.UNKNOWN_MOB_IMG,(64,64)) + + self.image = pygame.Surface([self.width, self.height]) + self.image.blit(self.UKNOWN_MOB, (0,0)) + self.image.set_colorkey((0, 0, 0)) + + self.rect = self.image.get_rect() + self.rect.x = self.x + self.rect.y = self.y + + self.level = 1 + self.damage = 50*self.level \ No newline at end of file diff --git a/zdjecia/dragon.jpg b/zdjecia/dragon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..43700abe388326199343966aebbf9fe28412b0f8 GIT binary patch literal 12647 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 WFGvUo5dhlnf4Jl2m4rX;`0-z5a`JEh literal 0 HcmV?d00001 From a8036b32a1d2c4bcffdbd3d52fb24cdc95ff4812 Mon Sep 17 00:00:00 2001 From: wojciech goralewski Date: Tue, 18 Apr 2023 21:38:22 +0200 Subject: [PATCH 2/3] health bar --- __pycache__/agent.cpython-39.pyc | Bin 1559 -> 3809 bytes __pycache__/archer_ork.cpython-39.pyc | Bin 0 -> 1002 bytes __pycache__/config.cpython-39.pyc | Bin 257 -> 257 bytes __pycache__/infantry_ork.cpython-39.pyc | Bin 0 -> 1015 bytes __pycache__/infantry_ork2.cpython-39.pyc | Bin 0 -> 1022 bytes __pycache__/map_add_ons.cpython-39.pyc | Bin 909 -> 930 bytes __pycache__/sauron.cpython-39.pyc | Bin 0 -> 973 bytes agent.py | 56 +++++++++++++++++------ main.py | 2 +- 9 files changed, 44 insertions(+), 14 deletions(-) create mode 100644 __pycache__/archer_ork.cpython-39.pyc create mode 100644 __pycache__/infantry_ork.cpython-39.pyc create mode 100644 __pycache__/infantry_ork2.cpython-39.pyc create mode 100644 __pycache__/sauron.cpython-39.pyc diff --git a/__pycache__/agent.cpython-39.pyc b/__pycache__/agent.cpython-39.pyc index 1f547c61e2329036b641181a9bbb06ab878184cb..90d37a93428b3db40aad26ac2dda1d51c5ab430d 100644 GIT binary patch literal 3809 zcmZ`+&2Jn@6|d^A>G|~7@h;BhgDe|hXBE6sgv5u?l8|-0CSf*;jXZI~ z<*;6_F#LY~?~la0YmEJ!HfMhhHg~Yn_W=YGJYgMrS_$7_n@rfkdC7zmv4J(Pe`9wX z!M9n=>^OV+WCLa1?thrKIG!pGASWl_Pi zB&wo@r!VTFfoEAPi6)*Eu?({-%Dvl6mUHk~Abq_235@5=wEMQYMU<1Oe%pN!c zcjirrW*u9cO|7i7ie2DO?Hns-CG0C2Rt3FR)3A=W8?z;09TTmI-STV&dYZyMwm`X* z*|SybD_GUOk!k>M%-#aLBphvz_HPUKn8P;VUppr2YruW1HJpPD${H&RoHMvA=rr#L z(1R-ioZu?BSFo;Lp*ODy26t52lH+@i-dg|gNDQKG9DdjjMj$HL%R0FOt|Z^I zEG?-)%bw#JJ0T_Ue*ohzZGcle&KUe%vxzA#e?I~|Biu-$+@}CFYy>Qfzlz&)YZafS@ zaFTH-I_0~Y8||H7>t~y)oXK#M_QrCk+_W1eQODIxRob4&Uf9JeyGfj>S{h|Rcbtsn zesrk(K6WzdX3EjfO`@k!q8ij^$-l&v2e${J)! zSm`YQ#ywu)D^>;2v9Jvj0~=rfkNJ z8RglG=TFN#2e!io4syu-9=I8*(H&;VnXPwiYf4WJi zvZ~BIr~KjgX*9$~t15z##3BlY<6U_bXEQIZ07D#d-flAP?x)(3@)9_&xcml*l1mM^ zN%G$0K!jQJZQv;>VBDuaYlYlM&f-Tk<0d1x;3Vour%w6;n+&aC2DiN6Qx4p|%;Y*g z9&JMKeTQ(k!^=wFCr5c&#)r(~T*lhhxRKEgGcsk!Jk>H4tp_+{s=1!3)>DJbA9EQS zdVm`lt*2VJnBp4Kq2s^e^sTxqgP?56>?&pUfsE2L63TlJJlwdybI!f8PST|Z!Q-vX zPj-~^Ao%&Cxr^zgk3aoI8(o21tsH1g&pBLv3!Lv_<=(FFw|V2tDw47Yc9(oy{K(fX z);+BBF91^xe^~N~@w;xsXv#=1`-L?H9sWRy!Sg?vS_07+csd!qfxm`C9(VyYN0MNW zEhMPr5{C;1x?f+Q`!%GhTK5;HZ`SC|K|R+^?V2Q*e0?ghq;)rRG+dML_f6ZRif=V_ zI3$f$RX0sA&u85mR81nOi?%5#Uv+@c+oE13o3y9)p?`4-@%>}0l{uauGLU$Uz zeq06|tSVXt_gk0d*)4A)7feo9L)qPnWPtISs(L)?g`-R!nr&lYds~&#a3aT}hpIAv zNnV30T=YVk^71-1XgqO}D0>t=Qx$4zhNo(0wJn;utvsVzIiF49tmW$J=qyo51an)R zWlcD%r?c`E((O)F(~QRR4Uk67Bdqie0K;U~e-(${Ky}fKZt|w>o!i}9;LUeO%ZpWq ziMY@)se7JID7qjZV7QE<5O7IExX?lMEGp<+zOS#RMbOM3=Gv{V^0w}U!|?<$dJpR6 zlT_Zt_IFsR55UkL8dyh7bG~^LE|aGqQSR@}F@3Ly|Q zehN+~`Yqp#ct^JLBy|4BPY5G>XU?Ec zLzgv)Pe)GRAT;TG+rQ!0{i?t0|G+Q%p5~%(%it-mJ0A7ozMiDA3X0~wNvZOGWKQ}K L`8Xx@bpQK5jhaX> delta 433 zcmYjMO-sW-5Z%dc;#%4W5fMT^EJP&1izhEdkDl6#H$8+vmZr6_B}oOL=x+#%cvSy{ z2l1%Tn^(y}@a9#2fwK{67xvBD*_k(QJ{z}HGpN-n1kcZt6Ta)YIR+=c+GfYZ<@sA1 z=K1$rC-_>CA8=%cSn1jY>j$wYszG0zXMQ?K2APmu?U|n#kqAavB)imxri|z=IP!+> z$QSBecd&Ox?#TlIj6+~#s9~i0L?gapD#I}9Wrl??BR(xr50wS2mw=jY6g(bZh!}?_ zbxb6t0!zV~f^`HJl7`~V1=L$e3u8J7gG{uMr{&(jH47~H#U4SEclu_9{!JMWDqr=} zmQpF$nYc`sw3Jk`h2Y6U!=pXdkQ=7Ar&P=IQfX7qrz3Ho7EVfgc5ZzsW#Bn~_rh&GcN>2odRN{zG)vAh0D6}Z)$*Qz6UdOTP#9{3KiE^Vq zBsubL5XZg3C4YevGY%zLY2LoKJF~MpnsqA`o51+_`$SANLVlsx96E?ou=E*#AcDrk z!I{PMhFlP#3H_c3-6s)?v~QZD3)&?OV+r2mszDWf?jhYA48$o|S_klnLj`e|pn}~K zM-v)^>&iZpUf-8Ik#`PJFfP{@b;@d7jM0WX5>L2eS+IkSZUJNv=}wV&VXKoEF);c9x&Jf4ck_d@p= z-p}K)Hyws|&CxJuu;nQ{T4D(rOj6_s4Q2XY(<1;vOXuO$*REXbeoo08CGm&(&_HH zKbsHLxq^E@sfJK&D3#6mAQ9sjd71N1V>e#y66lqW}N^ literal 0 HcmV?d00001 diff --git a/__pycache__/config.cpython-39.pyc b/__pycache__/config.cpython-39.pyc index 7f7a30d2364d9df916430b32dde9af7435482780..4affd1a34718598bfe5ba965c36c2ff61f100a9e 100644 GIT binary patch delta 39 scmZo}0Irt_i~s-t delta 39 scmZofgc5ZzsW#BrQ94Jj=>6~uucHI+CbR2898g+hv&Ua%^yjMs5&oH(oo$S$^Y@YXrV;WBMS18Tjv=x~0D=gb z5Eo~b&`WYkgeLSGBJ_a7EY`kit}bYww2c*HlU|!D`q)QW9t^}WMAiZbh)V@=nV^E* z5LXi#Y}b|39S^*5E@wQIAACH-?Ldz40wVhXFsF0E$(+O_1_sCm48CZ&9viW_sLXLq zTQW-KEVo*qcy+G*V|H$Vt`+FOj{0Il&?Q#f1l3qx(;}YYD z`l1Ec6zd+Sw}rl>&=2|DC3f5aUWM3!-XyjQW(xyWc7+LQw>Z~5LE!e4-t}JR@LI%y zA9;sx|AR>s_`@{!I+JnOW~*bkwL}lvOj6_sZS6lV*b04KJ;9|trH9@qP&F?}cs7wy z9%QN>l`PJb8On4zfq613a?N#~GW$iovN(^%QO>!lUUpxf@P5}lQS^(VGi7{^L_SpJ zFo?oou8e5pg@MwO)Dv!_+k5%EcX{!SpI@Bu?weCp&80Wa2B{n=BlEo^aGi3Fs`RIF z;Q3JCeG=u$$%35wX#ze3Gi8OKWZ>sYFVIMWPeGzg;bBjBIC>T&16e^=8VFke--+CZ z>CZ#|=~chW-(H-*Iyt+%I+fl*zk5}-p);Au4M@fP*#iJVP1>YQW>XuO$u@wuXoEV; zfiE^Q>GgK`sdjE%>cLsSvN6~Wmf4(-QZY@CJDh)ky^BN;v#i(2e2+V%Jx literal 0 HcmV?d00001 diff --git a/__pycache__/infantry_ork2.cpython-39.pyc b/__pycache__/infantry_ork2.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..216bcbca1a044723442866bea24cac253f0b12a6 GIT binary patch literal 1022 zcmY*YO>fgc5ZzsW#Bt)Z4WTV?0VE`X)K@k2K zf+obpCrfCLoDiW2{fY=ZATf)zubQh1+9ge63E8C6q>4WAk**I0;s_#Z00hLPg1Agj z!LEp_2@RI(%4v`K-YAz-p2`m`A9ry*kYl`n$bJCK=!|eOBQc4A0kS@WH(IX8Mr_VY zGn~^FjFK74tp+Gwo@xJ>om-$Q1y*5&Gp`A{z=|87Hs@Qgc0;fQR;=gx{1)g6L^WhZ zmIK_GHvsEm)dTfyp)V-(L%zMhjyu515IfMD#CE}KVZh9;FhT7W`?@0te155Od2j#V zQpABDc?V#?-Z%>UL7IE5{qZPlvgHwcwnP(}Oj6_sP3=D~*b)wuEL%8rSLvZQ3{=HS z5}u7^ln0rrMQbK!EoFu>os2VOj;BSkxk^-Kw^*Po&ZAM3bFRw0_UmKbZM(;ceo=I) zjL(tC2g)1-Q8>tz5e>aCPiD#GaU#9FZu?^02{3soYmkctvWEbKnzT;q%%(Ol zlhuGX=q9bQD!j3oNiVl=T-g0FG_|5Eo!m9G@$vA literal 0 HcmV?d00001 diff --git a/__pycache__/map_add_ons.cpython-39.pyc b/__pycache__/map_add_ons.cpython-39.pyc index 8a55bcc0037c521037218e72d0adb518a1f36a30..2405d4310c7cc3c989fd9eee678015d30f250695 100644 GIT binary patch delta 380 zcmY+AJx;?g7=~>pL`F(7dS1QYC>Ac}ArHA-9Lgv}BMKny4sNZ1fJU|>QV zA}3(s4!jO5we-DupU>Zq>?ixh<{9T6!TJ6<5y>-ud-wn-sz^!{DM<+jWebLk(U|2< zX?3>JcSg@BQLJ%dQ0gk<-+7G#_D2oS!Mll|y`C6?cDp_FhJy8aV$_)3KG;VD1w+*( zNjZRbF*Fi?OEgb~*;6dk{-D<@XYej!hUKL6M(4F_dKDiIW|6J(!OyBHt?%Tr$?Nu= ze)0((Cqu|9kxBc=PNM)|A?jlYp%#tWFLpE4X_;)xygf6Hu3aPt>vpqVEDNc>PWoDm Z?b@+*u1lTs)kfS``2_{lCd8o*`voO$Qf&YL delta 359 zcmY*VJ5B>J6!d4a_I|u1AqmAsR5YA`21TMEJtv4F99CF_NSlSq5+|TQdjT&UqNkvy zrw^y#28=D5SbF1`(Ttw#SMe;=QmK^S{C=M3-ivyF`hc+1k_EBE5aStZxQR^9#nyYQ zW0Y9dh!NC6TK>@ZnUW%h#R4v!5_M3hwg?H2i;EmK}>)7cqgNQNP zV*sHsP1_%KHTHI0?!&ab;N@Jx+{M?M`}vsGu}$( diff --git a/__pycache__/sauron.cpython-39.pyc b/__pycache__/sauron.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6220f82b11b5d7e2320024ff9a6b2a6678dc6f73 GIT binary patch literal 973 zcmYjQ%Wl&^6rCAA;y6yzhCmAoR9F!tT8Sk>RS~MHKuJ+kHm1_ZcqXom6Nj+_q{@zd zNV4Q_5X;%ZCcnUndu=K*(mivI@5^&N4w_Au!20?7K)g2y`GsPAnII0q@<#xI2$~Wf zcb3v~a!iCF%xfY{NfMSA-wfXrbU?b+3ZhBBOErBQB3)k$#35MT0g%L}g7{2O!LEsK z2m{hhZ4ZK}%ElqKzgfu9UV`O60OoW~IGK}#B)|aKkiiq9FcT}W7qvP1j3uLF&I+dk zir44HKjsz==thYiWHc8Wf-bRQ3)JRf3vye6EwN&|Fc-H#H^97zl~GOL%|!>WEvg=< zZwqrtp&#-)OYFD}ybiVvy-DJh%oP@Rc7zRTr+lxwg21_J{j1L2{*_2%7zg`#IfA{( zIO?+1A)Hs?>AOr(~>|W-imAs^JVa5w-xn6SWK5pZnpni$RaSJv)7M^!ohbSOrf8 zy^EVc&eR43VP^gifKZ#ZX`8v!1!l7i;2pY2J?6m^m)Z2HRb9iqn`!i+Ka6G!gN4z! zoR2awO_6(?f0_nqaL|4ptK!k<6#^r4+EPB7`;|u V7bTX_&hx7A0p5ZfKe|I5_7_hK=fD5} literal 0 HcmV?d00001 diff --git a/agent.py b/agent.py index f26c158..7ad3f8a 100644 --- a/agent.py +++ b/agent.py @@ -29,9 +29,15 @@ class Agent(pygame.sprite.Sprite): self.rect.y = self.y self.level = 1 - self.health = 10000*self.level + + self.current_health = 500 + self.max_health = 1000 + self.health_bar_length = 300 + self.health_ratio = self.max_health/self.health_bar_length + def update(self): + self.health_bar() self.movement() self.collide_mob() @@ -46,13 +52,13 @@ class Agent(pygame.sprite.Sprite): def movement(self): keys = pygame.key.get_pressed() if keys[pygame.K_LEFT] and self.rect.x > 0: - self.x_change -= TILE_SIZE/2 + self.x_change -= TILE_SIZE if keys[pygame.K_RIGHT] and self.rect.x < 832 - 64: - self.x_change += TILE_SIZE/2 + self.x_change += TILE_SIZE if keys[pygame.K_UP] and self.rect.y > 0: - self.y_change -= TILE_SIZE/2 - if keys[pygame.K_DOWN] and self.rect.y < 832 - 64: - self.y_change += TILE_SIZE/2 + self.y_change -= TILE_SIZE + if keys[pygame.K_DOWN] and self.rect.y < 768 - 64: + self.y_change += TILE_SIZE def collide_blocks(self, direction): if direction == "x": @@ -87,37 +93,37 @@ class Agent(pygame.sprite.Sprite): if hits_archer_ork: - if self.game.archer_ork.level > self.level or self.game.archer_ork.damage > self.health: + if self.game.archer_ork.level > self.level or self.game.archer_ork.damage > self.current_health: self.kill() self.game.new() else: self.game.archer_ork.kill() - self.health=self.health-self.game.archer_ork.damage + self.get_damage(self.game.archer_ork.damage) self.level+=self.level #zmniejszenie życia o damage moba #level up if hits_infantry_ork: - if self.game.infantry_ork.level > self.level or self.game.infantry_ork.damage > self.health: + if self.game.infantry_ork.level > self.level or self.game.infantry_ork.damage > self.current_health: self.kill() self.game.new() else: self.game.infantry_ork.kill() - self.health=self.health-self.game.infantry_ork.damage + self.get_damage(self.game.infantry_ork.damage) self.level+=self.level #zmniejszenie życia o damage moba #level up if hits_infantry_ork2: - if self.game.infantry_ork2.level > self.level or self.game.infantry_ork2.damage > self.health: + if self.game.infantry_ork2.level > self.level or self.game.infantry_ork2.damage > self.current_health: self.kill() self.game.new() else: self.game.infantry_ork2.kill() - self.health=self.health-self.game.infantry_ork2.damage + self.get_damage(self.game.infantry_ork2.damage) self.level+=self.level #zmniejszenie życia o damage moba #level up if hits_sauron: - if self.game.sauron.level > self.level or self.game.sauron.damage > self.health: + if self.game.sauron.level > self.level or self.game.sauron.damage > self.current_health: self.kill() self.game.new() else: @@ -127,6 +133,30 @@ class Agent(pygame.sprite.Sprite): #zmniejszenie życia o damage moba #level up + + def get_damage(self,amount): + if self.current_health > 0: + self.current_health -= amount + if self.current_health <= 0: + self.current_health = 0 + + #zmienic potem na smierc oraz później trzeba będzie tutaj ująć wszystkie statystyki + #i ze statystyk obliczyć ile dmg dostanie agent + + def get_health(self, amount): + if self.current_health < self.max_health: + self.current_health += amount + if self.current_health >= self.max_health: + self.current_health = self.max_health + + def health_bar(self): + pygame.draw.rect(self.game.SCREEN, (255,0,0), (10,780,self.health_bar_length,25)) + pygame.draw.rect(self.game.SCREEN, (0,255,0), (10,780,self.current_health/self.health_ratio,25)) + pygame.draw.rect(self.game.SCREEN, (255,255,255), (10,780,self.health_bar_length, 25),2) + + + + # brakuje levelowania postaci gdy zabije moba, jest zrobione tylko, że jeśli za wysoki poziom, lub brak życia to ginie i od nowa zaczyna # brakuje dodania miejsca w którym agent się leczy diff --git a/main.py b/main.py index ec4a462..03c06e6 100644 --- a/main.py +++ b/main.py @@ -54,7 +54,7 @@ class Game: def map(self): # tworzenie mapy self.clock.tick(FRAMERATE) for x in range(0, WIDTH, TILE_SIZE): - for y in range(0, HEIGHT, TILE_SIZE): + for y in range(0, 768, TILE_SIZE): self.SCREEN.blit(self.BACKGROUND,(x,y)) self.rect = pygame.Rect(x, y, TILE_SIZE, TILE_SIZE) pygame.draw.rect(self.SCREEN, BLACK, self.rect, 1) From d86f263987a9ef551a8fb96172cfd2f2f91fe4ca Mon Sep 17 00:00:00 2001 From: wojciech goralewski Date: Tue, 18 Apr 2023 22:15:23 +0200 Subject: [PATCH 3/3] lvl indicatior --- __pycache__/agent.cpython-39.pyc | Bin 3809 -> 4155 bytes agent.py | 9 +++++++-- main.py | 4 ++++ zdjecia/lvl_icon.png | Bin 0 -> 15852 bytes 4 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 zdjecia/lvl_icon.png diff --git a/__pycache__/agent.cpython-39.pyc b/__pycache__/agent.cpython-39.pyc index 90d37a93428b3db40aad26ac2dda1d51c5ab430d..bc6dce4e08e0dbc0a0f3a1d1995e46178950d578 100644 GIT binary patch delta 724 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 v_Q}X?16_Sp?LECWy9lBh*3EK;is+O70&lF-