From eb7456c9385bb440f8cee5945976e00495d669dd Mon Sep 17 00:00:00 2001 From: Sukhdeep Somal <117871204+TwistedMiraculous@users.noreply.github.com> Date: Sun, 2 Feb 2025 19:30:59 -0800 Subject: [PATCH] new file: pets/NinjaRunner/Over.bmp new file: pets/NinjaRunner/ReadMe.md new file: pets/NinjaRunner/background.bmp new file: pets/NinjaRunner/background2.bmp new file: pets/NinjaRunner/cloud.bmp new file: pets/NinjaRunner/main.py new file: pets/NinjaRunner/ninja.bmp new file: pets/NinjaRunner/ninjast.bmp new file: pets/NinjaRunner/obstacle.bmp new file: pets/NinjaRunner/requirements.txt new file: pets/NinjaRunner/roof.bmp new file: pets/NinjaRunner/run.bmp --- pets/NinjaRunner/Over.bmp | Bin 0 -> 49206 bytes pets/NinjaRunner/ReadMe.md | 15 ++ pets/NinjaRunner/background.bmp | Bin 0 -> 65606 bytes pets/NinjaRunner/background2.bmp | Bin 0 -> 49206 bytes pets/NinjaRunner/cloud.bmp | Bin 0 -> 65606 bytes pets/NinjaRunner/main.py | 231 ++++++++++++++++++++++++++++++ pets/NinjaRunner/ninja.bmp | Bin 0 -> 4166 bytes pets/NinjaRunner/ninjast.bmp | Bin 0 -> 843 bytes pets/NinjaRunner/obstacle.bmp | Bin 0 -> 4166 bytes pets/NinjaRunner/requirements.txt | 4 + pets/NinjaRunner/roof.bmp | Bin 0 -> 65606 bytes pets/NinjaRunner/run.bmp | Bin 0 -> 921 bytes 12 files changed, 250 insertions(+) create mode 100644 pets/NinjaRunner/Over.bmp create mode 100644 pets/NinjaRunner/ReadMe.md create mode 100644 pets/NinjaRunner/background.bmp create mode 100644 pets/NinjaRunner/background2.bmp create mode 100644 pets/NinjaRunner/cloud.bmp create mode 100644 pets/NinjaRunner/main.py create mode 100644 pets/NinjaRunner/ninja.bmp create mode 100644 pets/NinjaRunner/ninjast.bmp create mode 100644 pets/NinjaRunner/obstacle.bmp create mode 100644 pets/NinjaRunner/requirements.txt create mode 100644 pets/NinjaRunner/roof.bmp create mode 100644 pets/NinjaRunner/run.bmp diff --git a/pets/NinjaRunner/Over.bmp b/pets/NinjaRunner/Over.bmp new file mode 100644 index 0000000000000000000000000000000000000000..6fa30b43d3255483ac9fb5e735ac8fa43ba52609 GIT binary patch literal 49206 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 Do4rE< literal 0 HcmV?d00001 diff --git a/pets/NinjaRunner/background2.bmp b/pets/NinjaRunner/background2.bmp new file mode 100644 index 0000000000000000000000000000000000000000..8fa9eb6521a749e94a7d08d103619966cd1cf372 GIT binary patch literal 49206 zcmeIuF%f_;3~Gee)%$G;5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly SK!5-N0t5&UAV7e??*b2@9SL~= literal 0 HcmV?d00001 diff --git a/pets/NinjaRunner/cloud.bmp b/pets/NinjaRunner/cloud.bmp new file mode 100644 index 0000000000000000000000000000000000000000..90263ae24a622903dfd1917094f0edd7da6cd85b GIT binary patch literal 65606 zcmeH~O>)#Q5QUv$$&M3n4Av~Np>ikA0bC_#8%BXw)9FaE!oSEuByH@$HSn6?Z-r1SXR=>R8>+is9^`rMjKzAYce#dgR9cax=K>n}&Ett7R zwC4%fJD|3G=ku${J^}&xt|p*CuO00bZa0SG_<0zC=%?^E`BmD)D;)W%uu38ehD zp8IxtRh-a^fcy{9`&`@arI~Z~CBPlnm*Js^M3w}wWIk);NE+1+lkhU1mwSs z{vA*CXRH^^9|>6RL)-fOaW*3mfB*y_009WJCSX5{L%a2P>_3KpzJqzceSeHPPHjy9 z|63D2_WttU|No2ke}CUB>s)*Plk+=Di}yVA^DD_(0^)dYw0rhwTfO!U^fG+y|exJ4Zt@CH} zI90Rv#`a@A*u2`Yc}E^gu{hhf{L4k}V{ERUbHx7Hye+9W=A|DyqL($AN;sT(j`us) zui<`#xo7sZruLlYK6eCPOEuImU~Zhitp3NVVRQ=tdk0G2z0vcw)XADO0ec5Rd$hl~ z^V3z3*-F6sZ~Hkfdgiv)#=0^B)^pqL>9IenOgXb!5YQd)p7iLqsE0l42#oT-P9?Kj z5g6frt6JE%o$cA^LUn(*!KH&=%A5ig6jQReJ6C zICXQLY}twDQSX4)8tc#LLVwj_C$D3%zpC{Ur8^eaSD$x=c*$qq*LX=BNm06Eaip%% zXUBNN#!CDxoinQDSY0i&_;YlI#yuzHM?`5#MXzw2xBH2p#f1#1e)hH0I7M(VUx;+xsjz-GLmZkUKh$HT^z+^m=;foAupK@$o*V z`l= 80: + ninja_y = 80 + is_jumping = False + jump_velocity = 0 + + if ninja_sprite: + ninja_sprite.x = ninja_x + ninja_sprite.y = int(ninja_y) + + frame_counter += 1 + if frame_counter >= frame_delay: + if ninja_sprite: + ninja_sprite[0] = (ninja_sprite[0] + 1) % 2 + frame_counter = 0 + + cloud_x -= cloud_speed + if cloud_x <= -128: + cloud_x = 128 + cloud_sprite.x = int(cloud_x) + + if obstacle_sprite: + obstacle_sprite.x -= 1 + if obstacle_sprite.x < -32: + obstacle_sprite.x = 200 + + if (ninja_sprite.x < obstacle_sprite.x + 15 and ninja_sprite.x + 15 > obstacle_sprite.x and + ninja_sprite.y < obstacle_sprite.y + 15 and ninja_sprite.y + 15 > obstacle_sprite.y): + print("Collision detected!") + game_screen = False + game_over_screen = True + splash = load_game_over_screen() + display.show(splash) + + if home_screen and home_ninja_sprite: + frame_counter += 1 + if frame_counter >= frame_delay: + home_ninja_sprite[0] = (home_ninja_sprite[0] + 1) % 2 + frame_counter = 0 + + if game_over_screen: + if keys[pygame.K_a]: # If 'A' is pressed, go back to the home screen + game_over_screen = False + home_screen = True + splash, home_ninja_sprite = load_home_screen() + display.show(splash) + + if keys[pygame.K_RETURN]: # If 'Enter' is pressed, restart the game + game_over_screen = False + game_screen = True + splash, ninja_sprite, cloud_sprite, roof_sprite, obstacle_sprite = load_game_screen() + display.show(splash) + + pygame.display.update() diff --git a/pets/NinjaRunner/ninja.bmp b/pets/NinjaRunner/ninja.bmp new file mode 100644 index 0000000000000000000000000000000000000000..fd5a3d22099317df88fcfe43c018fdfc3a151701 GIT binary patch literal 4166 zcmcJQJ&qJH5QPU3k|1)lDu^A~L;iepgoQQ~1kZ}Rhy#OKN2F9<(uk@x| z?zTsZwO;>Kz3KSbAZRmmi7$|MW z7QTc{cRLR}542S!t-9}aUemxN&>6~(e4aO2FjS9eP=`u z;$tLP%HQwmWfbT0WYmdGF5`AQ6f4!kuOFZ2!&ynk-+9%a>CoF5^YGZT;-Cn7y9yrJQ3^C5(n;6G!tu`mc;^Z!HG4-&=CzE^~S7G>z#rerS=sfK4 ztGJy3`8sa>$j8{;g{^x4F5*UfJ_G(1#TM(x2P`SaGsy2D!kL@$xemstG6rIU;*7oZ z>h9y;-T?$j&alNKW|Z0fB*mh literal 0 HcmV?d00001 diff --git a/pets/NinjaRunner/ninjast.bmp b/pets/NinjaRunner/ninjast.bmp new file mode 100644 index 0000000000000000000000000000000000000000..ece6239715b6fb0310f4860d8adff3322c2c3aa8 GIT binary patch literal 843 zcmV-R1GM~!P)Px&1xZ9fRA@u(m@#V=K@i91NGB*purT;YjD^~XNu{w6%$KmT(OSQOU%@t&SSa`f zv`Zl`AiNZo7K-5oECh*ywkNafth2MTH*hYRQENdn+!V<9}W!8u0!>GLc_jQ4acqJ#yIoTD=i zK+ZV`2l6UW14xo{2O5A@bWANPK(z*3&ObbRSS|P~_jl+!GeG%3mTxV3a(w>spBj)P zUq8+uLTCVe-}mt73&7KrE>ob_@=3-?egqhDPS2ma9TZXlUL5uC?pF>_I7f#y1r`7Z z(ZBo-@MiWNp5MJ52vz5_^lA#A%yc1;yss#b0PdX);&dcY(PCvfyemM|15ZH_JqM6= zG*}Nq{homq1uZ}q6*4$fpdwAx%ICQ^0hB1St|-5cpw)Gc(Z{@JtHbJ4 zqiQ2|z%1`dAeql00Bi40wr}0M6aJ6=Kl4d_qt+Kp0NVGtadM~?F*o?*+C5C}jgW7aQRAm%dUtAMci*34lp zPR^vr{>rJiwgcAA1_&e6FjY{uP8qdB-jFI%10nFj-%a;+2O+AbV$zbo^%$}i5D}p0 z4}3MLTc`Hg<;-b5XGF1s{@2gx1dFugm@#Xs4+Z~YiCqAG+hhdlLIv@akZ_Ni59#9-pfi|E>!zpt< z&;}H-!?gj0Jl6$b+JK@BDE_+vg>@8{hoVtObL-(YA5dS%+I*n$mfGe6Tp0I!;5WXR VR#*B+Fv$P_002ovPDHLkV1nTWhp+$u literal 0 HcmV?d00001 diff --git a/pets/NinjaRunner/obstacle.bmp b/pets/NinjaRunner/obstacle.bmp new file mode 100644 index 0000000000000000000000000000000000000000..8f71b6dde55b52b897e4889368ad655bfaf6e70b GIT binary patch literal 4166 zcmeH{I}XAy5JZhAX%Hvi7}P1!(NG|91agQ}NI7=!V2`viE6blCQEbGr>tEh@l6bg| zNB6l#|9|muj$27`eHG@tOz{}Y_{r1xQnzQEi$j!aGcUr%6&A(%5KE1cM zHCvvk^xI4GYtEY6BR98Z@3h86fB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U_?Ex}g->T} literal 0 HcmV?d00001 diff --git a/pets/NinjaRunner/run.bmp b/pets/NinjaRunner/run.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c2a6228099fa8d30190762755904e53ea5142a86 GIT binary patch literal 921 zcmV;K17`e*P)Px&QAtEWRA@u(SiMeFK@i>(I*BHjSU|iHuuw~cM#aLy_pp(kH}E;AtbGAW3xgFr zfQ5gtG||eETr=yLWp;LUeh!!0;HkKrJ@bA0?d<#wDfY~b1BAowu}m1io|s!Us5$pPx_DNFqdFE}bVD zNBMz(29E1*KhFxe2{hmU*i!%qtnI(fSi>-+UmuQ|-w^^LI9|P_DZtN>ABXn_Fgxxe z;P|RPXz`v9HNjOU+1}jCHv$c64$6+n1?;}3WVcmRkRQX95+FNVJ^|e6@teo_Pm*j3nJK%soUqA?KmhZ= z7;5<`EYu0XctrvgKowp-+)rC;f6}Abjdb|##M+P;zr2hy5n2PlF)W>c7J|oj-VGH~ zkq@#8_h!2dkCl~wW~M|#FM*Pr0ECkO0$3T7c;T{bEfV8DP0f_d-Px_8j`v!sk+7Em zd$j?OVQN?#?AB~mJ>ZbH@(=WhF@&omq?aPNBiS@0NDk?e;4hj=i0$5zw2)vbbc0kw zK)LG{IQ>*g<>L1dqmDQfUlJu?6)91BcIQI&^nXBceFhZbJcwjF)77UADAXQ+$NxnS zC_?QyNU+EOg{u+0@&N_xiVq}~HK6FmaE*ZFiIEA3WUD(hv4GioGc@-WxcovQbL|Hd zD2ge4cpHuZM-%!Ry!jcOhZ(Iu7?6^0g1Qqmm+{b zpu)kEo%HqhYK6@P6cVq=KF~OygMi1WE0U29tdcx>wexx}fvQahXJkW(lFC`-WZE|u z^dcbEh&UfWLMVfGT4E6}2NVd{3DK5)^$0X@v8knMc++yX9^fS!Da+Lw0)rJCiRT#H v1&PC0DPqt`9pCgvG@VGNM$QS}q`z6bv`~