From 90b736f955a18948df9fe884132b39d17774338d Mon Sep 17 00:00:00 2001 From: Stephen Deaton Date: Tue, 16 Jul 2024 15:33:59 -0400 Subject: [PATCH] making the aliens move --- PyGame/practice/gameprac/hybrid.py | 42 ++++++++++++++++++++++++++++---- PyGame/practice/gameprac/img/alien1.png | Bin 0 -> 731 bytes PyGame/practice/gameprac/img/alien2.png | Bin 0 -> 3522 bytes PyGame/practice/gameprac/img/alien3.png | Bin 0 -> 2895 bytes PyGame/practice/gameprac/img/alien4.png | Bin 0 -> 3046 bytes PyGame/practice/gameprac/img/alien5.png | Bin 0 -> 2317 bytes 6 files changed, 37 insertions(+), 5 deletions(-) create mode 100644 PyGame/practice/gameprac/img/alien1.png create mode 100644 PyGame/practice/gameprac/img/alien2.png create mode 100644 PyGame/practice/gameprac/img/alien3.png create mode 100644 PyGame/practice/gameprac/img/alien4.png create mode 100644 PyGame/practice/gameprac/img/alien5.png diff --git a/PyGame/practice/gameprac/hybrid.py b/PyGame/practice/gameprac/hybrid.py index 6840030..ce26313 100644 --- a/PyGame/practice/gameprac/hybrid.py +++ b/PyGame/practice/gameprac/hybrid.py @@ -12,6 +12,10 @@ HEIGHT = 800 WINDOW_SIZE = (WIDTH, HEIGHT) FPS = 60 + +ROWS = 5 +COLS = 5 + # load background image bg = pygame.image.load("img/bg.png") # FUCK THIS IN THE ASS FIXXED IT FUCK YEA def draw_bg(): @@ -29,7 +33,7 @@ class Spaceship(pygame.sprite.Sprite): self.last_shot = pygame.time.get_ticks() def update(self): speed = 8 - cooldown = 500 # millisconds + cooldown = 400 # millisconds key = pygame.key.get_pressed() if key[pygame.K_a] and self.rect.left > 0: # Why zero not width tried width would not move self.rect.x -= speed # why speed not pixal + or - like others?? @@ -57,8 +61,24 @@ class Bullets(pygame.sprite.Sprite): self.rect.center = [x, y] def update(self): self.rect.y -= 5 - - + if self.rect.bottom < 0: + self.kill() +# video for this https://www.youtube.com/watch?v=mqz1_wRSMwo +class Aliens(pygame.sprite.Sprite): + def __init__(self,x ,y): + pygame.sprite.Sprite.__init__(self) + self.image = pygame.image.load("img/alien" + str(random.randint(1, 5)) + ".png") # List this will call 1-5 but thought it would be 0-4 or is that place holders + self.rect = self.image.get_rect() + self.rect.center = [x, y] + self.move_counter = 0 + self.move_direction = 1 +# WONT MOVE TO THE RIGHT ONLY TO THE LEFT AND STOP + def update(self): + self.rect.x += self.move_direction + self.move_counter += 1 + if abs(self.move_counter) > 75: + self.move_direction *= -1 + self.move_counter += self.move_direction # create sprite groups spaceship_group = pygame.sprite.Group() @@ -67,6 +87,17 @@ bullet_group = pygame.sprite.Group() # create player spaceship = Spaceship(int(WIDTH / 2), HEIGHT - 100, 3) spaceship_group.add(spaceship) +alien_group = pygame.sprite.Group() + +def create_aliens(): + for row in range(ROWS): + for item in range(COLS): + alien = Aliens(100 + item * 100, 100 + row * 70) + alien_group.add(alien) + +create_aliens() + + WHITE = (255, 255, 255) @@ -83,7 +114,7 @@ clock = pygame.time.Clock() -running = True +running = True # IF RUNNING USING THE BUTTON NOT CONSOLE IT CRASHES WHY?????? while running: clock.tick(FPS) @@ -96,11 +127,12 @@ while running: running = False spaceship.update() - bullet_group.update() + alien_group.update() # draw sprite groups on screen spaceship_group.draw(screen) bullet_group.draw(screen) + alien_group.draw(screen) pygame.display.update() # Go over it again FLIP vs UPDATE Which to use When diff --git a/PyGame/practice/gameprac/img/alien1.png b/PyGame/practice/gameprac/img/alien1.png new file mode 100644 index 0000000000000000000000000000000000000000..872c1b35be97961493c59320928b00ea19f517cf GIT binary patch literal 731 zcmV<10wn#3P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!TE;#2!Bc7&SsG{9Qb2x}qa3;92_P@LzH64r6Esu9w>LJwxS z8Iwh6SrZmAHZk*q74hc6TO`tPc0gefpg1^cx3CE|L5U2VAeVyL3Aa@>r`qO5IfTJlj29~(jP=M1~raO>R&zD#{&XHV5d zytVf^8iHANwc%O+VR-xt?CfzfCX1uS6ipFImcO}P89aDf$k?gjC&!N zzq%6e-w3jEMyA_%;rc!7jD^1^0N+l_J<5uY2cvLd$V z1FVSnh9O~&JFzKNgz>S8bNdF_5fzJg|M*E(_H2*rK-cclX^&6yRqV8lIav|a<}@4Y z>$t*>a5E;0YCZ~UIl=mW^H8N6>$q7?D8EK}!&{3JMR&vdKd95jfZsTh+scmIe9Qm< N002ovPDHLkV1mc`N#Fng literal 0 HcmV?d00001 diff --git a/PyGame/practice/gameprac/img/alien2.png b/PyGame/practice/gameprac/img/alien2.png new file mode 100644 index 0000000000000000000000000000000000000000..87a1b49f2577051dc4dd1ea124d6280c90c7a172 GIT binary patch literal 3522 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 literal 0 HcmV?d00001 diff --git a/PyGame/practice/gameprac/img/alien4.png b/PyGame/practice/gameprac/img/alien4.png new file mode 100644 index 0000000000000000000000000000000000000000..22b8296a93936de7f9914f12a20b2df7bfc3932a GIT binary patch literal 3046 zcmaJ@dpuO>8=o$eOXZSWhiO(tnVY#!24ltyN;J8q+g#3=2{U76G()s4l1obEwpo;t z4Qq?awX`cFR0>gPb8S~eR4$2rN1J~8$A0#FKJR(o=Q+>!`#jJ4JnuOt!E+mHg{Fxn z1Oi#%>cU`yGZq{hmaBvJydh};I4zR1Sx%6WduD%u!qPyRI}HN4azg79M-7xUq%Qt) z2xR5$`LQT%(@IlNX{>PeQ|yok6iSW^fYA67E&y{4;RFI~fWr?DZ365dkR@#*FF%E! z`&J515`yH++aOgTQVhKxd!P#7!%jiI0k6g(03^@4-mWPAaI&0v1@ z1xi%7P@#}gP$;ERiBw{d5?LS$Lneb9wkTU$1ZaVfhl>>)6+$fkZh?UT$ayl6R3Vax zVe^a}t|UxBg@cj)okEC|EeaGWyQ-G4ON@#+gR8C6k<(BrJo8r4fl}=LM{*SgzoRdBB2S5$N|T*7-lN z6uJ!HC?qm3i6nTTp*)2Wg+wltNMUsPmj;4axpR0T@x0P{zUE+NV9pFcCOQD{nKDTT z?9293ME?>6S0KQm@fGl5p$5wlWUQywd>cY4)Ip!~JZxiNZ^<-*wdpt!5_0_#BW$myT9Uk?~=%Z_jA zsGjVSylb2b_%)-K+jOXiMKL*v=> z@f`dbzIc+&^eWJey6MpvcQT9aH zVoqz`wYc0Yc8Wz--SD!87CbaWHma7C?>UxhsyThI>hP$6#u2Ae%Y(+7YU#2(&#MPj zS4g@U2h)-1kBoR+xL)t&VwY=)d*ZY$vIB0ttJ9AeulqB$r|*O#Zzx(Kd2Tf=^T+I` zU$zeyI^MJ}F1P>q!tHkBt5-9?vuzu*$9@j(>WI|SP?S}kjrZ=i*|gC&bu?E)v8BMl zH?`kzu@-l$L6DPj?U?dXgkaFkGiRc3j(}L|G~0c(dvWf%{`iYc7Skf*&e?ZVT~_V~ zsDHkWx0Tb_)I>h+oHDLPBB%d{Nh$Ha3yV1YEUUlvt+u)l;+36NOXhZEGj*So ziOzRxS>(%s-f|B!^OWrG=XgGCD-wH2SH<+AI zZi$G?bkQ{Sf;?RXy_7UKlm6ju(5sKSSRXy(n6V!=)xDOR%#o94V`u?Rop*ymtz+{7 zlV#^JjZ*00$9FY&>kJJDj_H^74WA4&s{LKyjmv7^9D$=_YuX>3V)FEy2#y0 zvig+H!j&7{PFVs8^;o?vd`t1^dI7ReaI~(uFDu>WjtCE}ta^BUO|jXtpOcKm@qcKa zxYL_p{aXJ_ChkI+M_#i;udJ9Se|TY6OS9IDa?8dwzS_qgUJb4ov@TuT+ITkQ$@__s z2=&vcUWjmd#+z5-)J}f2SEV~r%BO)uJs-t1}_SS3+2bXJO z;Qf3h-SIY#536K854h^Bmlhp+_44Wh)?oEyx%Ih~BazY#Yc?znxRXzFT=_Y&N?z2n zulGzV%I#v2M`7jzZiVxRMI_57dv5pLc) zKi0!@`?0I{uY5k1pfi}B+Cm!0>PURp*p>_&Gd0=0>G)17frCHv%GGoAk$n=VUtRc% z$DKMg{XH^24fX~Ws%m|hZ^ToNHxF)KFf+zN-?qmbBb# z!{krWx}-V;Y1FH$DyYHR9+KKPziF_?aP+hA=nD455?4-e%ZLeqv`sr!_ylG6*sPU)4tvC})0MyRg4c@|I{CjFQ*;Qh33XnmMAkDHy4x9^+sO5eTvi_l{Nb~o&m3Qv2B{o@CQChDoBQ6G+++I*tn0;i?97Mg)lKl*0P_o`3<@Vh>Zh$Z~J&r0LD)MTdwn62k5Rgud-hH&TdR7rYu^e5Qitg#UcKVP3*Gd&r;E?K)V$xbJjEm0ZhGlwSjKovW9!JD zZlI90x>hwpnR_ zjp|tV$P{T{9z#;G!Ft{k$!Y(##ZMN3bU8T!kKUg5&20$B5 znjcm4WW-I|>@*w-G)>JPnAUmPX!m)?+Hs3!pO)yC=AIwt|D#=PJtH0 literal 0 HcmV?d00001 diff --git a/PyGame/practice/gameprac/img/alien5.png b/PyGame/practice/gameprac/img/alien5.png new file mode 100644 index 0000000000000000000000000000000000000000..60a417440aa0769bcefd5d89b9cd73658a9226bc GIT binary patch literal 2317 zcmaJ@c~leU77uDAN)bh^=whW4hXi5DZ@NB5g(-<#5f_80%(oeVzCz_` zn$TDs1~cQTWmpx=pD`CzIwQd`NQ7FBq(NF3!HcI8mVrz`dw3;sAv#02fUcfg%kLPEv%X zYvG9Wut;fovXm{u1ug{q4IGp}2_q0-P^PGK976zZjF*G%Eou@D7&AeV18^ULiV=ka zJhc`E=tKrVN~W;@CYwlR&_F7~51@c#HVI^r$W#JI=704y}Q8nGfV3DJEdSLwzN3q3ZH0n(7jM3AH%v$5niff9+nj8G~+TI&!o z{QuxT%dd-Eqk&0cSf|!&rDzr9_)lDY*^$L?JO_>l(k8=b6$Ma=4jy|U5^l?B$JsmkVyd;l@5VaQh36z0`)tN4gMmQ!_&eLqSi*L z)hQDV6`rI<)Vd_K2H^3=8VK+eK~javqWp)Y=4fVU&U{#_NQGqrty&3;9Y06$nJ6T3 zITfTsYyvE2k_j{h86rS(7$U$@37IJcSs-0b!;Rx*pPb%@rbjhsCYp(WI8+H+$^_YH zGgIjd0z*!d5ZFvMj804@TMEjkw`@P&GF13@Phk~WRxNr9 zvkD&jqF;$aLOwS#CZu=yk}TIKhk&SolVuzGZ!~9py}1zB;xhG`RY=P=iN>?hv}xuX zZk#ZDPNV69&g;m6*3*mm(I%i3aB-m62TL`X+#j&BdJcsB>nN4_?u7Aa?aA&{14{>h z>Q}VwZ37DjFQ+}I9gMeK6spP|#)tIX?K7WYGR+5jzjJcCb|5;z)RkCb3fOx1m)?C? zecl3_Ss8Vj&iAfL*}SkrijHvCZw}-zf)o6Vwu^G^rR$@lqKx{% z=W#_x-q>bEIX0y1U9;uK-rWx`wq7O5Ont^}qmHAAPKQ{%{-fAm`=+vFiz^FAxIoIC zW8i6n%uu-eGX5w3Ojr1Cp31BER`ts(5zEY18uw~qu-6gaw7}w$XW8cO|C&nM&_qs_ zO-U@w*mrB=VN+Gm6Sv%TP>5-NQ{KAs1!s$s=bxtZ*@eDuz(rKXKj`s)MXNZv>Si5D z?=+B_^VLOfn~vO)jn3awDrVfRb=Xst<3z~w#17pR+QItOZ>?{<%socQysxQz)#JBn z`=Zn2A@4SZsy zsmH4Potcl~?pLxG9o!>~*Dkdi!e+#OJ!J0{x!!NH{Yw5aPsKBA6 zT0kppaCo{W?BbjjL%9pKaoK;g_(pVp$B~u2Zg~gymW77QTJJgY%BHzRn#p^k z@aBEZ*{*&R1#Fa2e0rAHiRGKyeD%kd3+jfuSM8`u3W~)>uBdf)p zJhRkrbgRry@wmuOHg8{adH+$$BZpz52d4tSx#gO-Qs6*}qdFx$CRQmq*CCFJ6>X0y l{nfeR)PGtY=~L|fR1doHI(AKNpjv)6gu!9_@}Pfi`5(aUtk(bl literal 0 HcmV?d00001