From cea81cc570d78ba2916dc11b7492f8be4074ede5 Mon Sep 17 00:00:00 2001 From: Vivien Chen Date: Sun, 10 Dec 2017 16:44:54 -0500 Subject: [PATCH] Revised for MP5 with suggestions from feedback and start menu --- Game4.py | 216 ++++++++++------ Old Files/gameover.png | Bin 0 -> 18210 bytes playermoves.py => Old Files/playermoves.py | 50 ++-- .../pygame_base_template.py | 230 +++++++++--------- config.py | 21 ++ gameover.png | Bin 17263 -> 0 bytes misc.py => models.py | 32 ++- 7 files changed, 316 insertions(+), 233 deletions(-) create mode 100644 Old Files/gameover.png rename playermoves.py => Old Files/playermoves.py (94%) rename pygame_base_template.py => Old Files/pygame_base_template.py (95%) create mode 100644 config.py delete mode 100644 gameover.png rename misc.py => models.py (87%) diff --git a/Game4.py b/Game4.py index a55d8d1..dae9271 100644 --- a/Game4.py +++ b/Game4.py @@ -1,8 +1,21 @@ +""" +Blockade is competitive arcade game. It has two players. Player 1 is a white +block that is continually moving forward. Player 2’s job is to stop Player 1 by +throwing obstacles in its way. Player 1 can avoid obstacles by jumping over or +ducking under them. Both players are limited by a stamina bar. Actions such +jumping or throwing obstacles depletes player’s stamina and if the stamina gets +too low players cannot perform actions. The game uses keyboard inputs as commands. + +@author: Vivien Chen and Harrison Young +""" + + import os, sys import pygame from random import randint -from misc import * +from models import * +from config import * class Game4Main: @@ -20,73 +33,96 @@ def __init__(self, width=480,height=360): # create clock self.clock = pygame.time.Clock() self.score = 0 + self.oneplayer = True - def mainLoop(self): + def start_menu(self): + """Start screen for game.""" + while True: + if pygame.QUIT in {event.type for event in pygame.event.get()}: + sys.exit() + + # display start menu + self.screen.fill(colors['BLACK']) + # title + font = pygame.font.SysFont("comicsansms", int(self.width/8)) + text = font.render("Blockade", True, colors['WHITE']) + text_rect = text.get_rect(center=(self.width/2, self.height/3)) + self.screen.blit(text, text_rect) + # instructions + font = pygame.font.SysFont("comicsansms", int(self.width/30)) + text = font.render("Player 1: Arrow Keys, Player 2: ZXC", True, colors['WHITE']) + text_rect = text.get_rect(center=(self.width/2, self.height/2)) + self.screen.blit(text, text_rect) + # buttons + self.button("One Player",self.width*1/8-20,self.height*3/4,colors['GREEN'],True,self.main_loop) + self.button("Two Player",self.width*5/8-20,self.height*3/4,colors['RED'],False,self.main_loop) + + # update screen + pygame.display.flip() + + + def main_loop(self): """Main screen for game.""" - # initialize player + # start count count = 0 - play_len = 25 - play_x = 100 - play_y = self.height - play_len - player = Player(play_x, play_y, play_len, self.screen) + + # initialize player + player = Player(PLAY_X, self.height-PLAY_LEN, PLAY_LEN, self.screen) # initialize stamina bars - P1_stamina_bar = StaminaBar(self.screen,25,"WHITE") - P2_stamina_bar = StaminaBar(self.screen,350,"RED") + P1_stamina_bar = StaminaBar(self.screen, P1_STAMINA_BAR_OFFSET, 'WHITE') + P2_stamina_bar = StaminaBar(self.screen, self.width - P2_STAMINA_BAR_OFFSET, 'RED') # initialize obstacle length, x and y coordinates - obs_len = 25 - obs_x = self.width - obs_y = self.height - obs_len - obstical_height = self.height - obs_len + OBS_X = self.width + OBS_Y = self.height - OBS_LEN # create list of obstacles - obstacles = [] - new_obstical = False - # uncomment and place line below in [] of obstacles = [] to generate random obstacles: - # Obstacle(obs_x, obs_y, obs_len, self.screen,'BLUE') - + if self.oneplayer: + obstacles = [Obstacle(OBS_X, OBS_Y, OBS_LEN, self.screen,'BLUE')] + else: + obstacles = [] + new_obstacle = False + obstacle_height = OBS_Y # initialize time variables prev_time = 0 obs_dt = 500 # main event loop - while 1: + while True: count+=1 + # if pygame.QUIT in {event.type for event in pygame.event.get()}: + # sys.exit() + # elif pygame.KEYDOWN in {event.type for event in pygame.event.get()}: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() - # check keyboard for obstacle player - if event.type == pygame.KEYDOWN: - # z to create obstacle at ground level - if event.key == pygame.K_z: - new_obstical = True - obstical_height = obs_y - # x to create obstacle at second level - if event.key == pygame.K_x: - new_obstical = True - obstical_height = obs_y-25 - # c to create obstacle at third level - if event.key == pygame.K_c: - new_obstical = True - obstical_height = obs_y-50 + if not self.oneplayer: + # check keyboard for obstacle player + if event.type == pygame.KEYDOWN: + if event.key == pygame.K_z: + new_obstacle = True + obstacle_height = OBS_Y-LEVEL_OFFSETS['ground'] + if event.key == pygame.K_x: + new_obstacle = True + obstacle_height = OBS_Y-LEVEL_OFFSETS['first'] + if event.key == pygame.K_c: + new_obstacle = True + obstacle_height = OBS_Y-LEVEL_OFFSETS['second'] # check keyboard for main player pressed = pygame.key.get_pressed() - # up to jump - if pressed[pygame.K_UP] and P1_stamina_bar.bars >= player.jumpcost: - if player.play_y == (360 - player.play_len): - P1_stamina_bar.decreaseBar(player.jumpcost) + if pressed[pygame.K_UP] and P1_stamina_bar.bars >= JUMP_COST: + if player.play_y == (self.height - player.play_len): + P1_stamina_bar.decrease_bar(JUMP_COST) player.jump() P1_stamina_bar.draw() - # left to move left if pressed[pygame.K_LEFT]: - player.moveLeft() - # right to move right + player.move_left() if pressed[pygame.K_RIGHT]: - player.moveRight() + player.move_right() # refresh screen self.screen.fill(colors['BLACK']) @@ -98,68 +134,98 @@ def mainLoop(self): # update current time current_time = pygame.time.get_ticks() - # generate obstacle at random time - if (current_time - prev_time > obs_dt): - # uncomment below to generate random obstacles: - # obstacles.append(Obstacle(obs_x, obs_y, obs_len, self.screen,'BLUE')) - new_obstical = False - prev_time = current_time - obs_dt = randint(1000, 3000) - # generate obstacle player's obstacle at appropriate height - if (new_obstical == True and P2_stamina_bar.bars >= 33): - new_obstical = False - P2_stamina_bar.decreaseBar(33) - obstacles.append(Obstacle(obs_x, obstical_height, obs_len, self.screen,'RED')) + if self.oneplayer: + # generate obstacle at random time + if (current_time - prev_time > obs_dt): + obstacles.append(Obstacle(OBS_X, OBS_Y, OBS_LEN, self.screen,'GREEN')) + prev_time = current_time + obs_dt = randint(250, 1000) + if not self.oneplayer: + # generate obstacle player's obstacle at appropriate height + if (new_obstacle == True and P2_stamina_bar.bars >= OBSTACLE_COST): + new_obstacle = False + P2_stamina_bar.decrease_bar(OBSTACLE_COST) + obstacles.append(Obstacle(OBS_X, obstacle_height, OBS_LEN, self.screen,'RED')) # move each obstacle forward for obstacle in obstacles: - obstacle.moveForward() + obstacle.move_forward() + obstacle.draw() # check for collision between player and obstacles - if player.isCollide(obstacle.obs_x, obstacle.obs_y, obstacle.obs_len): - self.gameOver(str(count)) + if player.is_collide(obstacle.obs_x, obstacle.obs_y, obstacle.obs_len): + self.game_over(str(count)) # remove obstacle from list if off screen - obstacles = [obstacle for obstacle in obstacles if not obstacle.isGone()] + obstacles = [obstacle for obstacle in obstacles if not obstacle.is_gone()] # update stamina bars - P1_stamina_bar.increaseBar() - P2_stamina_bar.increaseBar(1.5) + P1_stamina_bar.increase_bar() P1_stamina_bar.draw() - P2_stamina_bar.draw() + if not self.oneplayer: + P2_stamina_bar.increase_bar(1.5) + P2_stamina_bar.draw() # display score - font = pygame.font.SysFont("comicsansms", 72) - text = font.render(str(count), True, (255,255,255)) - self.screen.blit(text,[200,10]) + font = pygame.font.SysFont("comicsansms", int(self.width/8)) + text = font.render(str(count), True, colors['WHITE']) + text_rect = text.get_rect(center=(self.width/2, self.height/8)) + self.screen.blit(text, text_rect) # update screen pygame.display.flip() self.clock.tick(30) - def gameOver(self,score): + def game_over(self, score): """Game over screen.""" # main event loop - while 1: - for event in pygame.event.get(): - if event.type == pygame.QUIT: - sys.exit() + while True: + if pygame.QUIT in {event.type for event in pygame.event.get()}: + sys.exit() # check keyboard for space key to restart game pressed = pygame.key.get_pressed() if pressed[pygame.K_SPACE]: - self.mainLoop() + self.main_loop() + if pressed[pygame.K_v]: + self.start_menu() # display game over screen self.screen.fill(colors['BLACK']) - font = pygame.font.SysFont("comicsansms", 28) - text = font.render("Player 1 recived a score of " + str(score), True, (255,255,255)) - self.screen.blit(text,[50,140]) - text = font.render("Press Space Bar to play again", True, (255,255,255)) - self.screen.blit(text,[50,178]) + font = pygame.font.SysFont("comicsansms", int(self.width/16)) + text = font.render("Score: " + str(score), True, colors['WHITE']) + text_rect = text.get_rect(center=(self.width/2, self.height*1/3)) + self.screen.blit(text,text_rect) + text = font.render("Press Space Bar to play again", True, colors['WHITE']) + text_rect = text.get_rect(center=(self.width/2, self.height*1/2)) + self.screen.blit(text,text_rect) + text = font.render("Press V to go to home screen", True, colors['WHITE']) + text_rect = text.get_rect(center=(self.width/2, self.height*2/3)) + self.screen.blit(text,text_rect) # update screen pygame.display.flip() + def button(self, msg, x, y, color, oneplayer, action=None): + "Button for start screen." + mouse = pygame.mouse.get_pos() + click = pygame.mouse.get_pressed() + font = pygame.font.SysFont("comicsansms", int(self.width/20)) + text = font.render(msg, True, colors['WHITE']) + w = self.width/3 + h = self.width/12 + + if x+w > mouse[0] > x and y+h > mouse[1] > y: + pygame.draw.rect(self.screen, color, (x,y,w,h)) + + if click[0] == 1 and action != None: + self.oneplayer = oneplayer + action() + else: + pygame.draw.rect(self.screen, colors['BLACK'], (x,y,w,h)) + + self.screen.blit(text,[x+20,y]) + + if __name__ == "__main__": - Game4Main().mainLoop() + Game4Main().start_menu() diff --git a/Old Files/gameover.png b/Old Files/gameover.png new file mode 100644 index 0000000000000000000000000000000000000000..ef7e1132387b3e72ac50d740d740a04b2dc5eb69 GIT binary patch literal 18210 zcmdUXg;$hc7p{p)I!Fje4GjX)4FW@#goJcUOLs{P&CoeW2}pN?5;6#a0uoXJ14y@k z)IIb2ecxT{{s;GSEtZQJ-uFG{?7g4;>}T(p$QP<|c-Z9FH*Va(Q;>&g+_-V;{Kk!& z_wU~Vuc+dc^MLhJGbmcvau+gZ^1g=AnoDg^5a*4;nurua z@`c8ZZJs5|l9CQ2ybzy!2u+T5Ox(x*e%TS2dnvr;JZ$8<-SNk5_-xB)M8fAt$hV?l z(r7GTmuKs;_!{YKZHQk54e_Sq0oG^d9O5h zbD$p{0p3iEhY(;cr2hZy!hsOOHjm4LK~9N_y`H9pfao;LR#aoWmKwYdS6f`y;+_Z{ zM6p#09uD!8X_aa;+D}VZG8=dLHQ4?j=Y9RH#=PIOC!Afs(SD}U0kx&5xbwXrB6;Gy z3Pn2%cGqSwm0eBz4E;_rD^^*XDsA=%@VhHaX~s+Z>{x!jgtqKMfVofhJTU_=mE z(eLMfH>;?9e$zgXixc~!+sh}O^QQZOj-mUHp$wkuU z{wxGu z*Nuq#p6)Hy`l#jzH&~A#eRn$q8jG@BhlNURLRMzdj01#xFqepvAM(_P<57?h6X&@> zv7;bryzf=AvmX-9D#_5%CgN zUgZjBJl4ZcwBYaq)8F6n(qo-%XPfuIo~xCh2O$u(H#1F6yAu@@6M24ila-VoWMC}~ zUi(XrR0VHpaxsBthxtn?Q0WhMj5%Ke_qcOGqqrr%Sl|gU-mnC=*Z`0o8 z8NNw_kmJwAt?rvf9@Caha~?C&1Y*1nKkL(YME83i(aFVa{cNz?{@H-|*`;0aDlZB~ zRQIDyN2kh&(sg8tHsZ->r~f&GPWGvB=S3K)QGyg$+sRTi=Wwn>;8JhoT&ugtR&`Ip z_+w6YI4;-HelfUG*DB^mxt{CZuTM^$XN*yM8U_YWam+e=juRH*IXh2p6+Kk9C*d&A ztuzoC62ATNgVy>?)9#lPHpIdYu$J?q^^k0<$43t{OnR54y8e&+5H$##`W1@#i~j1czUPdWAoABY>0QQt;yzJvR9!jgExGm$vP8QYb|S zo5za*?0d9z5b&I%<9#ibJU>W`yDk)gm6vILysmfD}{ zR^OP0qaM&v(N(n{V3QEv7MOk0v)gqYmknt-Tg_5$O#|nS>kVht0I^Z3T|sV@Sr&pX z{Ca<>4@Hu>m?d_;RW|}$FG3Vn2=?MIS!o!)@PS3AayF4cDS_QqDUIW0E@ximGt*n# z57i67gClHKKY*A-NZ=0ciLC@e5q}6+&RtU`u?^YkqdHGL>Pp{5ckp z3C}lg#s}u)MKkFM*IAEz7B?{TKmLJw4x0v->DF1{kr3)cQ2CTByAIO{c11`*<5%PX?}kJzdM74bkCj-@C=#>-4kU zW~%J-RE;?z8J_>G+EjXoqr>*c2Z!m}yJTkOE)vzZ2}GaW2%v}R!{yFS#tvbk%}u2iRrO5>6G16k2m4l|8? zU-CTHi_)O(;(ovlQdnO~y{z4r`v6;Xm~SWJ`SQbcL@WYV$l?J12t-ZjIII^gXASU9 zm&agb^+b;Y+&27!1)Ju3T#bk7FPdguaIBJzfRz!#O-R23h4JU{PKOUI&3c#ZH^xhK zd5$VuR>=#8%f1)L6-beRmqNb6h)^RE*X_HV=Vr3&EBm$m=$k}-SrN>!ka(UX>Y^&6 z4)W5&?QR@SSdJphH^Mi6ZVZI}vw|az7Bpeu@VzAc#73JjtkOsi-x#kam`&)iA7O7t zb9eZjRKCdT-tVUl?5FhfJNzo(;tZcV8VXMWA(Yr8lYj3A&6xV}7*xV|`)Z=yIqU5>90IWh1X_VPH_e4kf8XN`KFcr3Rh@savsftTsP3g1`IPeg za{H3Za(H>NKzF=@p7UJjIG)g7;k9u&WBW7fI+6sE&xf+gsND)uy%u|8&L4C49YI8n zy;s=;*-`6(LLKFsk2h;4E|#gUpJU|$xD$N+?cM6vtWC!SjWTWa2iz0odLg(%CnJGZ znt!G69}$m=fWT{W-)uDb^fou(?}H3a9v2cx{om|{twg1Va>DXfWUPhG8>Pii_r`13 zJq91ijdvEc1@GRWyH`Q{imw+YedDbp7jP7{8cNUhS5vBt7WUkU@lSi>O?U;M1l>Kl zqWudXy)SSEM5YF?Z^^3$R@vCkDLO`xg>CorURn=lPnYZQJPD*Z-ki)8cDD^B(DVB< zZQbU%Yt(43w?)%OvhTOwM|v{rs+Pp4Qav3M%DBo@w-9iyGVzTrPViO+9mZ z5dg?Wh`}J0=dANo2Q{#jF~@F&jvz<#uUovqp8@-7u$$xnvA|*2`cBmc0Iuu?A%WP@ zH;{@S5E&0zQ#R0+(k*KAMfF*$J=uSiwlAjOl z&njDoB1LwZ0nYz<4%HEu_o6#^0b<-^xBU<}TmZt=y?xsTXZ3o-@LC6E2o zv*exJ>~>O4BflOzf#&Qk9y+8#660MXYmkEIzT;xM94yC6V93$O+XOJITnn;>oQS1o zX1#E1Vpfwh$$>L_U_)l-lV4}5y61nk5xfgmS0`Nssy>NWrApcE6M9n*DfJlKXn)~w zwgPN@Pd^95eq>t2?#yy`*yhJES*nOj1x8_!x^D%Ht3}8z~-~-E+EowDEk)+0c z-_axvI~x-fWo<)=2k}Cyj|*`&;B;}iAb%*vWR@4Vj_kf|`SljZV`nyU^wD;#!2Cz9 zO_gjxNa^8MbVvo2m=BG6WjXf7G#yGYb6lpx7Mm@mi z`^WxC^}NV#d&v0RkB4Tz0C|%gB`gwNQeP`5sOq{BPHghf(tNM{Nqp!6fZoZRXRbj| z#_T+crd6*iaKGgr&oM?Ps`oYTH3u9;ECv#5)Zs&GBUNG8*66bGMewH}pY8blw(-5K z=xl|B&kleMV0fZYENU@=nrhpJ*ZaVNi1K#nwi0JYs2GD501oGRaycq*`b3iOvZ_vU zzOi$)&nMA?DQposbSYVI>z;5tW}V%`5sCOe(Te=H@8S0%aRHycG3}=)Ckm(-g%S3L z=R0Xxo-tmv7k_4)9@F>)NXT#)($9VuD`UgwPO35QazUNse z?DjjT2j5|9s)m`D{~TbhzEeloC4)KuALkPCus<_*lO78kUU7gRBQ=UmcGQ~nKbez< zyb8l67L|B)3D_HMpfdSqz}TxLbaMR;9&n#p%ZN&c<9=G8-NL6Dg#5C|#`Ovqf_|BBubkL-stMGrJl6Z$bx^$6r*NVvDei;T6k98W6l=0v?% z(Wuv54sRC2NP%0_ZKyz2QsgW1{~oOu%zxf1&J9R>@!n(mr+lI3R!u)t?S+et@04jo zo*-vW1VJEhE(8yTr0+H_<40N|RIAhrWFrlvyUtcAp5z(P&PFmNJyk5pm z3{q<;D6CG6W0W5BKXHxe#olo`7d!nGLMiN4qTl2QsIl_S{ghJW3~s=^cSnl`kJiW3 zvyo>yDf;!V^Ulc+0ISDK;~eQv4U6>3ZxHdjJ@SYS`4qW;4`Sw4BI7V{6SD(pJ0VJF zNN_)u@6h3(4+nvmd%K*>4S<+O7pe6FPDgI^caAQo$_(V74fAjB;v@(^?3sx*aQiNU ztk?%Q;=VNnAv+otT6}79V%^dxHWAQ;DDom~N7AH@jTF%IYPPCoR4F zGgAcuaMI8-XGpRgz0tfJCmrVD1Y+Q5bCTdTY#HQyxzXMXK06Y84JVML{*=K-8Zr^Z23XlWp!K|YaA zr(?JUVbS{E%A;4c77yZ7mN^5@a1u!fNAwxLh)QXQ^>EI@4&Ira#8-gI#H{eJ2W>w6 zs=?O(=(`;1mnC48sP~ht?skO}@)CSdR`dQinePlyQBk525h;CmrJk5&qgFVv;Id`f z6$!k~%I}K?s_3ok5GsU>c{K)osQF zLYxaP&Ln--cq%dS(pYa<8?Z}gB4gNEn}2b(3w9z&;?3Jw?*hm%j+@weaFLSv6`h=&r)~08?%`0J!h@GQdz2;(n(!{Z!G} z;tHPuQ^O0hnyR-+8qBJVr4YCR@Rs0q@)^X-T1$)X$&P%cAkuhF@C==V7%x6q2&9&I zed^QizStdxTJ6(mHg8$Yv`d&)%HX!tt~7|W|18?Y^%rDFno{b(^O=PN<0|0M^4tAu zxq&<066XU+Omyy0+$Vw$@4Z*QPw?=i_f^pJ-bs*%=Z;$oPBlZ~xk{T~*z?akgk(ud zcjpebxQR(g=|ZTH#?+NB%SaN*+YY|4A*OXf-M8SijEDB*_Sl-*_)$jZj@^@^436Jx zzB><;`0|-g86^e@JigRt2mD=UmRSbiEvdm7-gTbNYeUF=YI=}GItbhpE*dcFwH%A8 zg8ce=fk(klQ)dKt|1F93xkHaQm$%BJI_VhZaeM5UUmbn_PU|MexLScq7Qg&Pky@@e zaOS*c8uyCYzDt8D?6xS^I64l-C{f{3Z!^Y7lqUd8QOG}0X((dBZ+_}l0I~x*Ro@X) z-@+kuvvh@X4?)jT%~fXlzM z4Qj{*Tkh*1&aXUCgr>+lCm@6F0tts%-u!b6nY`g&Z&^`5R#||TV9Ma*F~E55Ci-xl zd8-FK@_R26O_E2`7j*M>0&2=S*FSv72e54EjptZ+5x>@BPFa42}Jj9Y!ok^-JMZJdhXdxRnsP7 zEgf7|-`J(f5WV?rZ<#(<&1qm$)ZP$;zNg%)3 zsg(X_HOncV2=B11(N|WKcDFbHC^LC9u?cDr&+Dj~1$aMCG7+fBpK9E*Jjk&d(dSJe zK|<7id7hdb1HzCWKn_Tfv<8SeT%12Sj~5T#O_+@A3H|+DfG}RZI2@51eJD!J_xps- zX5=JxH1Q-Fi&gU`$OSj|T6sDipJZKzVLJB#8_ z_z%Yv`(BmZfbYnSz7dt!QW`p3RkZ1?^E-0^UIY@9yzR%sNi68c4%Vk)K1a_XQ8(1b zYb^&8^mfnIa^*H2DhIUgZZ@TcL)7RO$@L!ZTd*X+tw8{fz$}32n8$+#3&H_ubf(AN z*y|yX(^G}Uc==tL8LXVa^SdLxCaR3%?R^$ShL_I95~X~btxUl7tM&VOza9>AVTx)E z9)Qu3s(3SpQ+Nu>K^IY=!X=Ho*lUMi*aLz$8#osQ!v@#@K`Gv2S<%%6XL>adWJFTE zV<2&FJ%!e~3k~$0YN}{m=i%0CPb`e&`s-juYLL71cYS+E2e26}&N0jBW9%#l;eo$f{4d+7|QAsBk7a-LRjoEdmUgS)DVHVr(VH;QjJH%ZNtie*SwI zIX!6{7@O^LQ~ZnQ(Kl&?kbX61R~G;sRMjM?wJY?Spwcfu?b|j$8oN1J6_1Oh45jKn z$I~$R2YmP$ci{bp_$Qx2MHMLifId5aTg}Ngv*JAhyofx_M*V z@nYP?lFdF|cmx7_YUTE;lLHuWAq%Z}@BHa5DUFS&S(MksyzX3fFEtQgTThpw?Iy}2 zbMAJ-`^~8K%k}E8ys>4uNnR((Nn|cO^W{$@&yolf=iU?p)K1>vS7DN> zRHJ=x*PV%4OC=)pXG04q`!QahV<{pEG1{$OI01EB&3jrN5`|@mX78ibh?O|)a^3Gu zPR1iy9_ehr@<1PmEewVc?|V(~oY;<+1b<1f0!ZJx|NG46ou{Lhk;|Ra;jcg*7VTm% zzf#ICQc8oyL-*!X{Kf8b3Jggm zFQ+1bDKG~{Pm1I+={4ty_Y#!|{u-@oEjOGUcy%U76)V-o5I^XOVh;{c7h2E1-vK09 zx`ufmjUZk@nz^E*qt#)w>kC~H8*5<@wH>adfm-iFs~ElxKzV81MLU6x2=sOQCxX== zYZ6+V`p+~1%?v1U$$Y=_fN%%sXZJ#u-|@x|!2PAxYa*X5o%Ksx1s4VO@njRG-{_kmFNamR2DU;~N-K`R~p?sqz<>C)vyk)9JH z(R=aZ9Cwh$#cV+Jl=SzWK9qY2I0bv+U(Z4Irguag@#25)m*zB!st!-)ymJtBl1wID zZ9)Se1rpVk=)#B~AlwMvCbR*Z{56Q%n+gSc8)a2Uucb(4;X8BN0``yhb%*GvPJDH( zyLas_XC~u886Gf{&Q)T-(gf0MeU6cqKwVs@8_9>Fnm3D5^v6y>hGv#=I{N)xe%qoK z4v{a`ZFOTIJhOJWry9+Ny#4VPzbg>W2chlG%d-D9x%ry6lU_^vIY_Ap;RsQuM}&)> zIDpy#bw@3EQxo_Dpli%_vjCn!M+92ru+TYo$c+HNa*@V~%;kfF%H$ZxYcQ;X9-dhN z>KbRBvk$RnDrQf9R2fs>wHdF_CsoMN`k?h-y|!iT0DY#1eEs9YOUE5qk{kc{oVm4& zd;C)@rJ^H#K<}$HaZl2<}r?` zWq6sB;?Er0_hk!*-}}0a1mB}-c3o4Y$3}m;M-9{S0m`WKM)z{d6!%i(6Ck4jZ|Z}O zB_!NeaAm#+i67i$(E^cpLag5`CrWsaCMRu_YTs>h0`IO6h%2z|2vKrS{>W)yqd}o5 zqiKsNP2@8r7zt9N(9_CDfntnam1va^bUTX}RI8Ht?*P4mBp024+zxeL{MW;t5D^ob z_O64R)AnSFYDms!babtpsL(CgoWwMH7_ zRA8v;s$w~01nfgSiu8oqvKin-B@*=x=X%k^4%Q272iMjd!RJ_UjosI5`sLQMN48+kQAVZH(qgFI!X zbpohCe68mX>OmDY^$v~>;TPg1DxNG+rz_+Tjq!4chs4)`#trDNa6k4W$MA)XY&ho< zmv>jI&DeWd>W=|GZHn`rGR1g3T?JNkB^z@yW@M0N^gIUTEVIVi1g7Od{ySpX5p<@bz44LkeR%sIl^1#A5Oeh9(%A{JYnR`3_(6+4X^GNa-@E zaj#~Fk2_JGIxrm|;I!^9z!TMFM1eTUa_~C`;Dx-3r1yN3EQUOnx}py6kw}r?6~@8W zc6G;2Bq@bl=#4aBUWc+tvI*71r8v0%L|wtk0j=9l7pOpq$)KP0X<<6Q!{+VUqi-<3T{q0R*9HUt06Lvvk`-+M28$h-5fy4XwpE72 zuRZeaUg%Wz3TFXN?t~(NtU#AFU(qxlHI5*c2xxzK1)6XgT3VqxkG`Ot*)Ys$Bm2#@ zcJ>NT?VfM^ZU>?{v!Pme_F%`&0{=g`gH;P-tlH(L0GVi{-S{16y+#$7^xB&LZj{}g zh3Ed0gPiLu2UGq3Oy4U|;}j5R@i`b^s*#8_0gE}mgP5(a54^r&Rt@=wLYW`jecCcE zyYaiE$qBXJbm}_fx)FIBU+~vvRhMjdx*_OLPL&yrAjJ^Ew#cSVH}yQJFjUt|^Mjxk z!KLrAvE+G2gg58aL52nBFPc7UglQQGo!XZ}qL)WwsPzwk6QCY; zgDx(HQxVpIjtX{U;^1LRd@5jElw|pTfJ{o|KCV6$JD*{VjKr<687+L^u_~9wVVEFc zyVG@BB^q7FuD7P1Z3d`>yanJ_fQxW(yZwFHf_&O*5So2A+pzz{3VQ;TO#-}F zb6W>-4K;M%?Km;B4iG&a*F;e_`0ljaJAdO2qCjapPBa*!elsh5FV$qC=LXWl$>aU> zR=~Nra19kOEQD4K1{86|+J!XiFLuPr8+bt(<2bA?WQm`mkB`uGMC>%a;SS;Ur{ z30~YXxCdO2BBNs#bh=Q>V}_n{VbJVe(%+<+0M@hooE34&dGCAY?|r6ldK_SU8Yi;z z94Y7zT3u7QHA$+%4>FdWf#PGXRtXAQc+|JQ%+jTGP0 z-^%wYS>oI59fmxc|pw9V0k( z$alN9g&gv z0k`t_5sU)3IZ{^H`h``K&v^;P7CS6MY8YA=>^0xVH$>^UI-C=&!3%CHVIy0}Z*}T` zthcM`_yZu7l-te^93x}b+qm6=sJANz&CFTke72!2$_wq@bprxp?1aa%S39*hBh+FR zKY=z#=hvPVXMF>qkU2AIL2QX^)z-3tF0mvwJE;uHnftQ=c`&}`q{sWErrS5#qd8n3V5<7L&F7L_A<1 zrC{zJ#B>c7M!r)jxHVwfyC+6Vr|PY?zz)FWfPRuM7f(g#*ACRsEPjVXt7|}k3!mr( z6issL&{JlxFrH8)2dQDFMK%H%8q8m$=fYGaF5PT8+ICv){%lRFf$0sT*xjqLjF z4Jh7eBPf=^bOXim_n4t5(8tOU&9ntNInYG+{Jy0Wm@K3vlZ9Ov0pz>}ZUohj1i~%z{)5%mOh7`<@C0V}Kw10hu9eSfhBY9ZQ=kE0 zg2w^cOPd;3gPdJYH&?-A$P^fyk;WIg<2?jiy3liXo)96gwU1F(o8$naNNH!FKO zJ(a>G<`mn|iAtgpP9Xe@0h;QOsiVx_14S9bXQEKFk;E@sK@NJiu#0EVy~QB? zg37zUlMm4ISB>_OxDbRcPaK8qF8<^FI~L+IJd{4a^9b4Ts6+woQX5s91RJOg68`~H z7CW8ij+^ZPzk=@pLHH9C$)fq5ri<)>Bc@3Vy09&x-AY`TW@C}#x*S<36Ibl^CL>{i zi9Qk7;~%iMcfSc;Uh0%;Fxca(yk$);6L800c_N5Udj5Rm*AFj0CbAJEeR)d;)`542A-H&zey zzuf@hs|{uC3W&r0aQIZ^A7!M2#;$}@AUuKG4Kl3QAIX4cOAjoEvxPw6$^6;G=w-BG*cj)4;9@S}I>MDu|frqLS3v3QonZOp1u8ROCc z25KIAFFAkZn>10=k{bSfGa&o%y!)gfY5#3*|NU&(dVH~KX>;>wbq~HYp4p2c#gsLq zFTRLtAH4V*Sj8q#viJO!UZTNV5R;BhEIFSr7zsE(-V^}J5b)f0Qo-`H%)-JzyZz$# zEvD+e2^hXgWSD@j0loE8I2;gVt#Vz+3i;l-LQxBs`DYXAHbsKlZzlj~x(qosHwbR-M>7539x&5Ibrp013p#qeH&Na4R6Y^_av+g5FuCfRnh%$Dp&r zwf-Z%kD#afP$c@TG79wHsAP&CUrFTwwllG7Pqtr}!f8yklBri~F#rmqm?8BN&EjFl zQ)xG2mqRPH-T4j-F*hU$!ZgJAG_@*T5l0>@f?2Zrd$(mh1Du|c8TXEL1qN<~T!2xp zA|R1~HZ7SnHx!8VNItvN0RozyX!O?)_>{sJWrx9vr)4oOp=4Nbp;(Q&ohXbz{PZL1 z1mPJ4EvBvhodL{6gyX5--&+rYWp@U^D(XOk2$ziePFNyoBn~HN$k!Vd(oYOb$0LVY zL=T(*D#|BIfJS=y8c(_km@U%cuv0IgW+b?eZE}Dfn7VoP3C`pLM9BSbdD3ja)-_}( z%$yjQKGHGvCk|Wv0#vhGT>{^LhBR}|%zAQW3Ap4LL6UYfaK;PxDc-wOl z$NpWPG~jZeT-vy2im3y@C|c24w_ckEd(_|`AX8z+bRwm`rEo??MsyPQ;U9qjOMr9F!|zP*dL(QWP=C> zRVR$CEwPMKZ^COPD-@KrbimK9K){IsWpA-30st&VLIM@nZ_qAeNHcH&ylobwRPF|Q z0k?rR@Seiy4`2yUkLuri0m!sv2iRJ;!3pYRPOs}tB+VbtiP!C;0-Y}Rjqw&B88WG6 zmwXl`iU8-sVbqS{4ZA-ZHp#5BX}P{VV9Ndm`o&byb8hxfVef# zW?axHFtVw-+F2h6BE}LMWuLg259SB}?|KcqhHwRaDW^NY$o`b_d$C$BNG*K!Q`JBo z<;EEXeLTG}`Y&K&EcnbbsnpH1SNgrn**F-#&42wrHE8=kG!y(ku~Y;CL<#5yE)ziW zM;QqqBTAA3Z=<1b<_L?8SW1ybKns8}`$-7~D^jVXLjqO#isg=;Yf&iBV4Y^0Aq<4- zqV(VNI{mysuvpIPJxYM6q3M&8wTWHSBhr{z2xnW0j=s52?#tiSQ?m9V{QD-BCMp#s z#9ap{e!NYp$|~omI_z6*;NPTdsXao5yRH0@InlS-93r%%=%@x0Xr)hWNY%B_thY1= zAJ8FDd6s1R^pMt6h}tKVdoPdEyr>>;yzmBdeJYY(sYi+2MeNJF2xh{*zP@xFRSRw? zr3`Id1Gq%_tw_@m)hnvb7JI~FOVIItU6%|BQAPPsqG|dL1AoP3;m(C&a4G9pu^NcU zvgH&kkew_$3qa*$irK}nQsVQZcI?CYZ9n1}}k{^h$X#Bexn^>=2fMN*tA^f~V9|zgmy;vj6n{myS0a+6!mGuT`E_ zr2uU|Zm`ftZ(g^77S4X@mKi{=QxO@Xv>1|hi}%gVy0yBNUjhrC*x&z9h;72Aa&>f$ zPlC+~>8w9}7sb#$uBoADJT*F)%iJ33M#di+PN-?mNAOvDCc#qCgT-RL-5VTZ+Vvel z4;wY*3PRgnx<18B-f0~zc6*gd-a}IpI&aFZ#WW6yHv^sW#`2uX~@8v&RJSlX9cqpDaJ0=O?{TLnBarxE)ofAy`xU7AUDG=a@&u;CJ2A30lj@?8> zklaGLZa%Z?#1QNDjNeY4gN$oE0?#thG_S2F0jIQaTSOt%%_i}=2h+=j(YENu`cs&$ z+WG>}-F3yFEokDhH^)&hdG2Wlu23g2kkpbo!AFe*` zILc6dVB>GkftZiJxW~!j=6QmEII(?2C`3@zcJ$fldd9HIc&i;_U z^K;hLV6`r-ob^3zxV6ZDWdu4A_o?zQN z#5r9`WU2qDLM2g&luW)LgV)J~qbwFjNCQ3jY|BxBu8iRTEsf40+!iF&ct^hZdrI}8 zvzsH(EYd$abSCe><+fSvnOjVQ9L05g_eGaK@Tg!#oFyl83=&DH;<0?Q7`3XMzj#CB zV6*?gSZ$p=Lw$-Q4)-?Eh9c{)reQ|cc_&SIvlB_nP8fCu9nv(Tb-s`5v)|XJ(ONy) z-Zo@&KiTPnt?elA!%dc&wg0$J)0l}pm*a9*L@&=eDSde(Gfar^bX**|-`W3&fmbc6 z3NF|BXj)^m;wde=kqgw9i)^9s3(Cah$&-Wp?3vJI?GrnL{zc~7hKfDZ*lCFWEbEwe ztDANDZCb5263eYe0sqd5t)hp-^kymriwcR`qHehbB8C~7RjF6*Bh25{9ydgeRAK+h z)Oo|0*x`cvfElB1*^S3*y+_7{t?_zN3K`^+crDyzbl zp^P0*tCSWGs*;0rc+g&7L?&q2b&FBoO{E(@E*prY=+dV-%0~}XMmDEm*D>Sp^qyJLl9&y1^%xte( zQ(;HaUp+K&>maa!cbbJ?#M#C+gU|LkXH`j^LY&q%oVS!7%=fcxR40!m{xr+z`w;P- zZUyD0t@MbQjmh3&Q~bU|;ba1PpL4wu&j*${U(r_xPhcm5OjM)hfSsMfv<)h9xy%*E zPc~GjzMU-v62Gi4=;49j<%YUa|j|8vSv-HgDQ+%A`93PD6YsM~BZPQyD=cOJSmXaz2|j9*#Z2 zIFmQ5qVa&K(XyJa{2OseWwGtAL@WKdQ3G;GL5}IERFyb<77hDHLP@-gghdu{*wd^H zDZzP-4vY#kA}L1)Rk*b6ub^ppLHGSuUyS^1?QARo8b!Pu+ktANU-k^Sob6jYY<2RJN*m#BEK>>j+M_FIc09W*7zbru>eJaC%Df#ZK~=H_y4fClea-ZfOc_d< z(E|R z5=>C>kVw0iZjH69!of{lHFM!n__JN6;|p}gr0e_X@P^EfvZ{+2>S^0(2ng%QQsh*& z*;L&I!#neAi>&!>vFutr{^LY-lBJ;#LgcndSxDx*_PYxf-%tEZjbZw~Nqmm?e$crT z?sPjZYEPaFMQf#0h`SU{C8)4#d+{s9O~=Vx^4XoH+8vd*iXeUe!5%KuV|Ue;Y>Hyc~0ycO)18@-(*xzb(78|e6eWD zC*0wRdLt1ZHS}?i{~jhTxPCm!(!{lXw?$5-@nn*7CVzeUym94utm^p7DW0X|JGI7a zH5dI8uWf^ol&m4t3Yu8tmO}>vp zf8yud@cwQQsor&AN}<1@l^izYZxMYI-23X4pV^1v2EMO;SU**%T94TdwHAe3><5Fj zs3Xj^A|h)i+94#_ln1qKx~9b=!7!cWN@jn%nSK3W=A$XH3(< z;6x+ivbGrI7lc_BDWBQLaDxZaEL^d!?#VtLu)oij;9juc5%{x+RL>&LCB&of81<18 zckbz7u1=qy6Kzt8Nu+b7Nt$AZ)9>?TJ~s{W)epU4ncXj>z<59bl9@q<&^&}xAySm3 zbx+AC?X|Ryf}V=Sb442|63OJ3-4nYmPp1+H#b;rXWaXL7bw4yw>hF4S6A804t3L&i zpKJ=NlWYI{RJ32@sNL{mKLj>Cek|6%JR4f!u%c%FElFEygD9!4QzjGQt?|THRGe1i zt~Ymb%zXmnvH@k0)G%bny>7K_@B@Rsy7q&!M-)Ru2Qdjb`EWvDuw<+-;(htG6gM-H zb+2{yV9~2-DAh=bP!hY7iETQ=ZTuOcTFq(O&eTW@usk`2T@jJ-O#NaQVx@_WgU!d? zG+-2BwqVW!gzqDXZE&y$ z##yFJu)H;f+UN*Pg&8KCIih(QEt6g=tTuCOy&-+)I!8Pl1Hbs@Qd$i~rvDt~SM=MK z>44qGWw3ff-C1j=_iJcPzrLuC>A(kS9p!!fVYk_9HRWldY!mDQ+5}M->JuA>Cs}$I zYt?J(0E$@*8CrpBom`04`!gaVfjz6W(_EVNpT$hA#yPloOEnS+<(NyWhOQ^;_P1CI zGTa{B?b8h!{=rgD23gEoF+!5ws@GFgcCglG^xMAcogYNVgCgQ4`!eAtP1S)p81ykL zJo(w>CQ_&IZ)}jm8a>NR3XN)7=7x_SpTvt0~4`A5FX3a!{k@* zwB8j$I|sP(zu_JTe^L2_#e+(M7MX@fUA8kOJxS)<9XAcR0H4?r1SiooEgi+b6zP$T zqnD3YWo_}$=d)NXXwA|FnuXN7&4DZuu*V;?KYaI9!^~D>hI`SD6WnVVmjcSr^ZnVa z1e+jH9}G~JY(&CXO#e=DIn|7bWrnpg6W8_CYTV*aL;3d>L|247&@)9VINO70&OYa_ZFCE z`{N{;kCq2mzYUZYN8leLwD14-9NL~i;(Z!>!oQ)lSPLEoS|lOZ5A{e_arn$JZW`xf z<_g?YF&LGUZzTBP7_o?cyr~PIYCD^L(i%kmfyT>MxOaC$LgRwJ^Xa8VnH#Ez!-6nhFAHia@+24!YkZ=Puj&F&EDdj9I&^@4 ze0+t2%I69ngGNSo2%{5yw_8-EK%z6p;rA#j`VSwK$hp%g7a}GaOoN7ri_B#2h}7Rg ztcBfhNF~&q0n_C69c+F%`SfjtIuZ7N^ChpA#ovYDYR|}oUqm`E{NIc;bUxV_T3UwO z#-mEIoxzInAugdxw$892bkJ|%j&3j-un1sGBJKj8aOIF}7rv_b6twLM5U5Btdvty3 zy=n6s3dTWB{TcE&{h3qeE-#eDj3GTFg!3Py45ePnaH8~X>>AS48$t-nD1KbE|0LX` zH3T<_(5Cr+Oswu05T$6m{GqsGD5JpfW$BNP;e;4xPv3}iU%2`nh}W3%qN>UM zffn~Od-Y`BNqy1i26?-}5s!>wwqu-o;p{XGDiLn2VK1X<2@6d_NLikcX^gvuR8%Mr zf7eR2kiJz-^8d@M}K3SgS?{}}GNva@k6~41MtHDM0 zmhx3F>QE|(Un#P58(khknY`CVI>SuFSf;%C;H9dT7hfO$l`=MLlnBtZ|Ja+ouQ1RO zQg6tHGs95ODvM&9TBUb2RnerQ;){8Nq)z#XJ)&F{?&$KmmehWtn)tO>DJw2#xdRzx z)uU?mzPe?Lk2E$|_Ji;LQ1TNI>OT^q>g3IQqGUBz8r-Z9KSkbKBeFzNt7%5QmSKG_ z>6VI*%AHMvLe=lY$ka44$ksP(*gtR@Wqt47Bkm=2>&!P@QeXV)v;>i=eugg7sX_zM z|K)m-Us)KPGD=8gZBL6TAso(;Pm^t%>B`}9+*YaqGeJbPpPTE zq4Y}Zt6{4Vl9^0#xvGw>;T?dcASyJ-HAGVE5mD10XbW_HGS$85|L{}WA-Yg2&Aj0` zLQjCAp(|AB4P*JT%qU?i96L*sKFyrF6uEq-UY0zVO+9x20gC#JF9c|Ge-Hz2f(r>bLG3SE?*S|JtRJj>_h# z(7pTh5s%n{dmpu$t__gyNMYB+T1C4>Zgndz3l`ds2O}9}6cX50Q0uI9#q8YVZYzUY zlKHraM&a^SBxhaZgJok+|GVK3w^s8JMTrmo^loYGQ`wT?Dn7c3XBrNrqKz%J6`YNO zN6Hhw>VFmCww`1>d4ywwZ8MOFxVkPz3RBKfDb*9e?6v_%h3zis*aQl0YsHDjPvknit?Bm>lUAz`xBOar8SPZ0SlL>9v%P#UvNl z8KnsiD%_8ZStnPS+=`>;vQ5x&;eNKxJ;x2jizXry_3bSZSqkbPf3}q@__-zfR)VVO z*VnXo(PI;qp_Fr2?Ks-Pl070L1;X26N4f~q(OLw)Zm>S$o3p&-qQ}G4aCp&UtN~Gu0$VpVcaKL3%9b zZ_zXYs^bD!JYoE8zDK8iTXq@z@m`@%$>MqjWo5ITJUwXUW?}#8x*@Co$}hiy2^7#z zxmk=yOVr_CEWA_hWTa^6sOj}ptI+DWGp=N5y+oBH_2En(6^4iRh`X{5To;jtv(+wg z6m~P-{i2b8d|{i;yuG}6xeO-JLkAa?#0=+Us!^xB>&^H;(3Ao4a&8~ASJCc@+VO?8kv--xfBHbBqmJVEZn(K>{2f*dxiBikZ(VsAl}I@q zl}OjUO6Wqgb6#t^DVTqu{R3L@LEo%U#V_{kDC0TzQc+^_g5`t5HXI@0x#NPH3D&Ceb|!|cR7-IICiSj7n)bn2>T;Uxt^GKPuS1o5QnJ8hwfQsX@NFKhdBYA{*r z^=4#gQld~;p>m|e)pa%pZ5`Je9C`Ib%DXA;GqhDESyKE8}-hT zhv3B&pLAg`l?I1n_sf1&d+xJ#QOpzLRpOS^5;~pK4ZifG4GIU(J_#R2ST#Y}2LRrBq%m3Inu&jel;q^V9 Y^8^#gz7;O;y*4)#WK?05QYLTz57dXai~s-t literal 0 HcmV?d00001 diff --git a/playermoves.py b/Old Files/playermoves.py similarity index 94% rename from playermoves.py rename to Old Files/playermoves.py index 6121815..75b681d 100644 --- a/playermoves.py +++ b/Old Files/playermoves.py @@ -1,25 +1,25 @@ -import pygame -from pygame.locals import * -import time -from sys import exit -pygame.init() -def jump(ctime, startloc): - """ - Changes the y position up one frame - #for i in range(21): - - #print(jump(i,0)[1]) - """ - over = False - h = 100 - t = 20 - b = startloc - c = t/2 - a = h/((t/2)**2) - x = (ctime%20) - recty = (a*(x - c)**2)+b - - - if (x == 0): - over = True - return [recty, over] +import pygame +from pygame.locals import * +import time +from sys import exit +pygame.init() +def jump(ctime, startloc): + """ + Changes the y position up one frame + #for i in range(21): + + #print(jump(i,0)[1]) + """ + over = False + h = 100 + t = 20 + b = startloc + c = t/2 + a = h/((t/2)**2) + x = (ctime%20) + recty = (a*(x - c)**2)+b + + + if (x == 0): + over = True + return [recty, over] diff --git a/pygame_base_template.py b/Old Files/pygame_base_template.py similarity index 95% rename from pygame_base_template.py rename to Old Files/pygame_base_template.py index 94b378f..5eb8bcc 100644 --- a/pygame_base_template.py +++ b/Old Files/pygame_base_template.py @@ -1,115 +1,115 @@ -""" - Pygame base template for opening a window - - Sample Python/Pygame Programs - Simpson College Computer Science - http://programarcadegames.com/ - http://simpson.edu/computer-science/ - - Explanation video: http://youtu.be/vRB_983kUMc -""" - - - -import pygame -from playermoves import * - - -# Define some colors -BLACK = (0, 0, 0) -WHITE = (255, 255, 255) -GREEN = (0, 255, 0) -RED = (255, 0, 0) -jumping = False -pygame.init() - -# Set the width and height of the screen [width, height] -size = (700, 500) -screen = pygame.display.set_mode(size) - -pygame.display.set_caption("My Game") - -# Loop until the user clicks the close button. -done = False - -# Used to manage how fast the screen updates -clock = pygame.time.Clock() -frames = 0; -startjump = 0 -x_min = 0 -x_max = 200 -rectx = 100 -recty = 400 - -# -------- Main Program Loop ----------- -while not done: - - # --- Main event loop - - for event in pygame.event.get(): - if event.type == pygame.QUIT: - done = True - #if event.type == pygame.KEYDOWN: -# - # if event.key == pygame.K_SPACE: - # if frames - startjump > 20: - # jumping = True - # startjump = frames - - pressed = pygame.key.get_pressed() - if pressed[pygame.K_UP]: - if frames - startjump > 20: - jumping = True - startjump = frames - if pressed[pygame.K_LEFT]: - if rectx > x_min: - rectx -= 5 - if pressed[pygame.K_RIGHT]: - if rectx < x_max: - rectx += 5 - - - - - - # --- Game logic should go here - - # --- Screen-clearing code goes here - - # Here, we clear the screen to white. Don't put other drawing commands - # above this, or they will be erased with this command. - - # If you want a background image, replace this clear with blit'ing the - # background image. - screen.fill(BLACK) - pygame.draw.rect(screen, RED, [0,425,700,100]) - jumpclock = frames%21 - - # --- Drawing code should go here - # --- Drawing code should go here - - jumpover = False - - #if False:#if detect_key_press() == 'space': - # jumping = True #if the spacebar is pressed start the jump - # print("boing") - #else: - # print(detect_key_press()) - if jumping == True: - recty = jump(frames-startjump+1,300)[0] - jumpover = jump(frames-startjump+1,300)[1] - if jumpover == True: - - jumping = False - - pygame.draw.rect(screen, WHITE, [rectx,recty,25,25]) - # --- Go ahead and update the screen with what we've drawn - pygame.display.flip() - frames+=1 # increments frame count - - # --- Limit to 60 frames per second - clock.tick(60) - - -# Close the window and quit. -pygame.quit() +""" + Pygame base template for opening a window + + Sample Python/Pygame Programs + Simpson College Computer Science + http://programarcadegames.com/ + http://simpson.edu/computer-science/ + + Explanation video: http://youtu.be/vRB_983kUMc +""" + + + +import pygame +from playermoves import * + + +# Define some colors +BLACK = (0, 0, 0) +WHITE = (255, 255, 255) +GREEN = (0, 255, 0) +RED = (255, 0, 0) +jumping = False +pygame.init() + +# Set the width and height of the screen [width, height] +size = (700, 500) +screen = pygame.display.set_mode(size) + +pygame.display.set_caption("My Game") + +# Loop until the user clicks the close button. +done = False + +# Used to manage how fast the screen updates +clock = pygame.time.Clock() +frames = 0; +startjump = 0 +x_min = 0 +x_max = 200 +rectx = 100 +recty = 400 + +# -------- Main Program Loop ----------- +while not done: + + # --- Main event loop + + for event in pygame.event.get(): + if event.type == pygame.QUIT: + done = True + #if event.type == pygame.KEYDOWN: +# + # if event.key == pygame.K_SPACE: + # if frames - startjump > 20: + # jumping = True + # startjump = frames + + pressed = pygame.key.get_pressed() + if pressed[pygame.K_UP]: + if frames - startjump > 20: + jumping = True + startjump = frames + if pressed[pygame.K_LEFT]: + if rectx > x_min: + rectx -= 5 + if pressed[pygame.K_RIGHT]: + if rectx < x_max: + rectx += 5 + + + + + + # --- Game logic should go here + + # --- Screen-clearing code goes here + + # Here, we clear the screen to white. Don't put other drawing commands + # above this, or they will be erased with this command. + + # If you want a background image, replace this clear with blit'ing the + # background image. + screen.fill(BLACK) + pygame.draw.rect(screen, RED, [0,425,700,100]) + jumpclock = frames%21 + + # --- Drawing code should go here + # --- Drawing code should go here + + jumpover = False + + #if False:#if detect_key_press() == 'space': + # jumping = True #if the spacebar is pressed start the jump + # print("boing") + #else: + # print(detect_key_press()) + if jumping == True: + recty = jump(frames-startjump+1,300)[0] + jumpover = jump(frames-startjump+1,300)[1] + if jumpover == True: + + jumping = False + + pygame.draw.rect(screen, WHITE, [rectx,recty,25,25]) + # --- Go ahead and update the screen with what we've drawn + pygame.display.flip() + frames+=1 # increments frame count + + # --- Limit to 60 frames per second + clock.tick(60) + + +# Close the window and quit. +pygame.quit() diff --git a/config.py b/config.py new file mode 100644 index 0000000..6190651 --- /dev/null +++ b/config.py @@ -0,0 +1,21 @@ +colors = {'BLACK': (0, 0, 0), + 'WHITE' : (255, 255, 255), + 'GREEN' : (0, 255, 0), + 'RED' : (255, 0, 0), + 'BLUE' : (0, 0, 255), + } + +PLAY_LEN = 25 +PLAY_X = 100 + +P1_STAMINA_BAR_OFFSET = 25 +P2_STAMINA_BAR_OFFSET = 125 +JUMP_COST = 33 +OBSTACLE_COST = 33 + +OBS_LEN = 25 + +LEVEL_OFFSETS = {'ground': 0, + 'first': 25, + 'second': 50, + } diff --git a/gameover.png b/gameover.png deleted file mode 100644 index 24035b817faf14f23755faf631583366ebde484f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17263 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 icRx_x`8#_~@Gv@=i*p6 0: self.play_x -= self.speed @@ -88,7 +84,7 @@ def update(self): # reset velocity self.v = 7.5 - def isCollide(self, obs_x, obs_y, obs_len): + def is_collide(self, obs_x, obs_y, obs_len): """Check collision of player with obstacle.""" # set coordinates for top left hand corner (0) and bottom right hand corner (1) of obstacle obs_x0 = obs_x @@ -101,7 +97,7 @@ def isCollide(self, obs_x, obs_y, obs_len): play_y0 = self.play_y play_y1 = self.play_y + self.play_len # check if player coordinates within obstacle coordinates - if (play_x0 in range(obs_x0, obs_x1) or play_x1 in range(obs_x0, obs_x1)) and (int(play_y0) in range(obs_y0, obs_y1) or int(play_y1) in range(obs_y0, obs_y1)): + if (obs_x0 <= play_x0 <= obs_x1 or obs_x0 <= play_x1 <= obs_x1) and (obs_y0 <= play_y0 < obs_y1 or obs_y0 < play_y1 <= obs_y1): return True @@ -118,11 +114,11 @@ def draw(self): """Draw stamina bar based on color, starting location, and number of health bars.""" pygame.draw.rect(self.screen, colors[self.color], [self.start, 20, self.bars, 10]) - def decreaseBar(self, num_bars): + def decrease_bar(self, num_bars): """Decrease health bar by num_bars.""" self.bars -= num_bars - def increaseBar(self, speed = 1): + def increase_bar(self, speed = 1): """Increase health bar continuously if number of bars is lower than 100.""" if self.bars < 100: self.bars += 1 * speed