From 5167b80925c90f39406c6c03ff7c442699f0ed3d Mon Sep 17 00:00:00 2001 From: dvorakmortonxd Date: Sun, 31 May 2026 21:57:19 +0200 Subject: [PATCH] fixed up the comments --- levels.py | 22 +++++++++++++++++----- main.py | 10 ++++++++-- sprites.png | Bin 6831 -> 7132 bytes sprites.pxo | Bin 8154 -> 8537 bytes 4 files changed, 25 insertions(+), 7 deletions(-) diff --git a/levels.py b/levels.py index 7e960f6..d36a15e 100644 --- a/levels.py +++ b/levels.py @@ -107,7 +107,7 @@ def level2(screen, sheet, screen_width, screen_height, lastclickpos, basicfont, elif tick >= 2501: level = 2.5 return level # returns the current level set -def level3(screen, sheet, screen_width, screen_height, lastclickpos, basicfont, mouse, click, big_text, level, tick, smalltext): # function for level 2 +def level3(screen, sheet, screen_width, screen_height, lastclickpos, basicfont, mouse, click, big_text, level, tick, smalltext): # function for level 3 global milk_pos_x, milk_pos_y, holding_milk milk_collision = pygame.Rect(milk_pos_x-20, milk_pos_y-50, 49, 74) screen.blit(load_sprite(sheet, 0, 46, 48, 36, screen_width, screen_height), (0, 0)) @@ -127,9 +127,8 @@ def level3(screen, sheet, screen_width, screen_height, lastclickpos, basicfont, dialog_square = pygame.surface.Surface((700, 68), pygame.SRCALPHA) dialog_square.fill((0, 0, 0)) return level -def level4(screen, sheet, screen_width, screen_height, lastclickpos, basicfont, mouse, click, big_text, level, tick, smalltext): # function for level 2 +def level4(screen, sheet, screen_width, screen_height, lastclickpos, basicfont, mouse, click, big_text, level, tick, smalltext): # function for level 4 global zombie_x, zombie_y, zombie_timer, zombie_dx, zombie_dy - milk_collision = pygame.Rect(milk_pos_x-20, milk_pos_y-50, 49, 74) screen.blit(load_sprite(sheet, 0, 46, 48, 36, screen_width, screen_height), (0, 0)) zombie_timer += 1 if zombie_timer > 60: # change direction every ~1 sec @@ -195,5 +194,18 @@ def level4(screen, sheet, screen_width, screen_height, lastclickpos, basicfont, dialog_square.blit(dialog, (78, 15)) screen.blit(dialog_square, (34, 500)) elif tick > 1500: - level = 5 - return level \ No newline at end of file + level = 4.5 + return level +def level5(screen, sheet, screen_width, screen_height, lastclickpos, basicfont, mouse, click, big_text, level, tick, smalltext): # function for level 5 + global zombie_x, zombie_y, zombie_timer, zombie_dx, zombie_dy + screen.blit(load_sprite(sheet, 49, 46, 48, 36, screen_width, screen_height), (0, 0)) + zombie_timer += 1 + if zombie_timer > 60: # change direction every ~1 sec + zombie_dx = random.choice([-2, -1, 1, 2]) + zombie_dy = random.choice([-2, -1, 1, 2]) + zombie_timer = 0 + zombie_x += zombie_dx + zombie_y += zombie_dy + zombie_x = max(0, min(zombie_x, screen_width - 96)) + zombie_y = max(0, min(zombie_y, screen_height - 96)) + screen.blit(load_sprite(sheet, 27, 82, 7, 12, 56, 96), (zombie_x, zombie_y)) # ZOMBIE \ No newline at end of file diff --git a/main.py b/main.py index 15cf0b5..ebfbcef 100644 --- a/main.py +++ b/main.py @@ -51,10 +51,16 @@ def main(fps=window_fps): # the main function tick = 0 level = 3 elif level == 3: - level = levels.level3(screen, sheet, screen_width, screen_height, lastclickpos, basicfont, pygame.mouse, click, bigtext, level, tick, smalltext) # runs the level2 function from levels.py + level = levels.level3(screen, sheet, screen_width, screen_height, lastclickpos, basicfont, pygame.mouse, click, bigtext, level, tick, smalltext) # runs the level3 function from levels.py elif level == 4: tick += 1 - level = levels.level4(screen, sheet, screen_width, screen_height, lastclickpos, basicfont, pygame.mouse, click, bigtext, level, tick, smalltext) # runs the level2 function from levels.py + level = levels.level4(screen, sheet, screen_width, screen_height, lastclickpos, basicfont, pygame.mouse, click, bigtext, level, tick, smalltext) # runs the level4 function from levels.py + elif level == 4.5: + tick = 0 + level = 5 + elif level == 5: + tick += 1 + level = levels.level5(screen, sheet, screen_width, screen_height, lastclickpos, basicfont, pygame.mouse, click, bigtext, level, tick, smalltext) # runs the level5 function from levels.py fps_text = smalltext.render(str(int(clock.get_fps())), True, (0, 255, 0)) # defines a thing that renders your fps in the top left corner screen.blit(fps_text, (5, 5)) # this actually renders "ftp_text" on the screen at the position (5, 5) which is the top left corner pygame.display.flip() # this updates the display so it displays all the new stuff we added diff --git a/sprites.png b/sprites.png index 6f57033d0d0aaefbc8c6918261fcf3cabc6c15b0..8057517b8446d2ec3671abcaa4b1622afd8b0668 100644 GIT binary patch literal 7132 zcmeHL`Cn4$8b9Kenp0$Ii;9;qTg<4e+|Z+QX|XgX&9rf2n!K8hVK(NH3hHM@oE9p# z(uyV*N>fY%a|67Zdt+uw$yJ!E<}M~Cg21`wc>js}xgYs~_nh;5-)H$g3oj?@`_sn_ z^|$E*0AT2Gg5U!HTJWV7uucbF$mTW~@S<_m=lFL(<)3Dg0I)sJgW!HP;o;0sPt-;K zYk*j~=c!BHrHlA?X$P8(T0fa+7|AN%zOxAn@9T(d-zy}$o3JL{C=DmWh@1n%kzrF3_+usZ^nF_3no8~J1=I0SPz4GMy{&Lxzt!+>3_+#Pv%;tUi zMZLSQ*g?*%=H}*(uR}vaRB8tsUY^U)=#eiDgB;t;n~xqna&U4gP}=gg-#XSC7Y^>Y z^{CahB(Zhmif^L^9K`*I-ku=IRMJ%>Lo`M8LsN(k*Ti-dpBMw(4wx> zgONZ0@eZ?su9S~a#J_Q{@ z8P!uyINI*w4Y0I)tC_jE*KCI*a7;8b)R?1B8Eil^%GD!Z5~}@>?E%B*l6>=2JK2r0 z!ko{}c>K*$$Dv^nXSTbHM}XzPUed+`frE72zx-cL(Tn+DwC@Rbo)`m5&h@>Dc6Pi@ z8jd7KHkhIhn0*s|d*Q|eIE6F+l)rOxr_2{DbBvk+&A#~-TiW{82q@}p-;JoO;$Jjy z3!SH@%cv|qIbCYzrXF*lkcsj~6j_pzduhrnQZDbdW2$$&m{$y2uak&vux+PnHLv|IkG? z?A`w?cY=`u$z7F+*XL=sZ(EP8$WtMoZJ^&4f~PJtW_GF2eXCM%&j<#)@k+a}O9yv( zclN8_M;t0>z!?GTN+=8fnbnq%;p8X$Jcib`2hmGRE1j;Zyfzc!W6&;*+PzG#S)dmm zBg^qABgb31%{&Bgi3iLZ%_6Ar;1cHyaVDDU%$8f-YO#NLXG>AG2rq_Wh7sJ)-;+?MN?ZLDHwXu}AMc9>(z(tOEh; zg)#zf;4Zk^U)9H^svG5ON1xa~2E3mf@&0snziLC5vIvI8WFKz+E2g@aYcfA>qfTi` z2w4DeSMKc8Sm;b|VDKB>L)7~@N=EImqPxgkf!)m|w`a&2UVs;_g@MpRIF$+L@T^~7 zDL@MvV`)XuTH&{K)L2vg8u24JFl=1a&=DHl&l^Z4IhdWkb;jAlQlfq5q`K>Kn%t}; z=g@@nOGNKPO|HGDJa<{Z0gA<-wmLB!Djt}?Rfyw*?Q1gK9ODURZPvp$%Gi2rX@<%Q zr^3m`YNDN4QZCr!=lpPJ-Z+EL zixzg2k-24|7CQs>$P@yO2?D%f7-=eff;X@A*O^EJLJV5_*bU8Og|G$!!L61R3WmSy zdGplc4daf(xBSXu9?xD?Z$dy;?6Y&<_+GArOP%ZGisHTgkEG(;(9!0}`C3e?k82Ez9bdwxg) z_UbEfb%t)M^E&FRHOc}^`cUFOyTXl1=_K$;puG4Lb5NEdfbo=5oaff*S*ryc^w63D zKZ?;j0e=I0!*}@P<(TLlOKoj!r$qIQjg1SeF*`Jxh5;{I;1jAi&|h-t_$kr#m8IES zx-C76x;(?`IphfIA{HglG=h%YXKIfL-c&aw+wOu#ABBD|5=G3-Rr<{}PFyX=vpP?z z_sBvPYo&i8?QZ%qZWvHIq0b`WCl>&44Zto4HHnV{Yc9X(%EyfiR0KB48j|I)bF49T z7(Fy!SVL-)j`xhuL6Y*lCwlS(c_|jKrhUS51Q)>joZe`@pY_H8^bFJHPG}expJw?H zc0=qW{5`-0;GN(< zKWN0<$T5aqv>bq&j}tI>VPa2N0SY2dV0l?yDU zOkeyFMI35cehTpLAu;9*?HA5lLN|-^+YFp+5qUYs&!z-)bscWM*rhWs_t5Clg4o7t zFYUpu+lBPamaA@+`Pl$IKEwwEexlL3v8(Lx&L`yD6sTNlXxz&(r>Fn%^JrvjQ@TEH zh8N(q#%F7wvaC<-bp8s$yrUOj->)k^_~|NwVsJX$$o+nh)LMVw0rB;O>k52jwFQ9FtRZ2n{K9*1SdnxC?C|c1XCq(xfmX-4X_Vp>+<1*m|AOeeyfPQJXFX2 zkWx6WluLj0poGyBtVq}jf4Z_pPh5wRuy&dcH>a^U3q#jLl4*M9+~ zCxM_gW4Yh?yGS`%Pj~@8JH6)J9BnGixZVNN3xt?@5eR~~;ICb!m$2Aj(T#oBf0IN> z8%0o?3@rh(c%Q&}64dX|VX2P$M??1V+YbS?J6HO8kiFA~C+aGrl5(=rB#?wfmC-$2 z8GJJCX}#TR;q04BG2~6WOI&;cPW@ixo18d5Y_&|IE|1a4#zOB*H2S6Lmn}S{l(}yN zf}57IJvvt3?W9(YM24-a8BU7X1|O2hYT2a9`vMO8v~V-(;X}iun3#7%_3=0?c5bNN zR99Db=r|_j1A(9v^l)z`$QHRH@yD;oGj)*eeQW0d6jOM~7&Nm}?VSP1)QZKy?3tCu zk2Jpqhu;%^8lSgL5Ac6m?^6R6G@yyiS?cHcsayI3*&r zSy*FyK)A@Xu24(fq|USr7wd};q37dR7<9Z2_zQG()0bI{>mz*yPu0xGmf_TkE1$_C zbzDAq__lp{Akw0gQ`M%uvqyi4*NLxRRKLO!CH>PgT<47Xp{6Exc7a$dej?L%8QIKofn@#MHDsfT`uS6b;Hr(@dsk?)lEGVokkR^&Xj^XBKq|qA zxugW0AE?yjOzu?5k|}9e^6xi&%OkYVL%alODsm71eK6ewD_{GpF|fwK8Ut$#tTC|0 zz#0Q<46HG*#=sf_|Gy0Ip&H%H)t6%FYTnXst1le>f1~}Mj%)xG!as#MUnuBB-1Inl Kno#*2G5tTa>4@L} literal 6831 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

KebQS7B|BnPH5AhXC6x_9(`gsy%eIl7 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 L{`0={a!C9O?VnTX