Advertisement
PythonInProgress

Star Dodger Game Code

Jun 15th, 2013
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.68 KB | None | 0 0
  1. #This game was (mainly) not developed by me. I take no credit for the major part of the code.
  2. # Star Dodger
  3.  
  4. import os, sys
  5. import pygame
  6. from pygame.locals import *
  7. import random
  8. import time
  9.  
  10. #All the things to make Pygame window
  11. pygame.init()
  12. screen = pygame.display.set_mode((320, 640))
  13. pygame.display.set_caption('Mouse Dodge')
  14. pygame.mouse.set_visible(0)
  15.  
  16. #Load images and define mouse_pos
  17. background = pygame.image.load('rec/screen/bg.png')
  18. game_over = pygame.image.load('rec/screen/game_over.png')
  19. mouse_pos = pygame.mouse.get_pos()
  20.  
  21. class Game():
  22. def __init__(self):
  23. # get player
  24. self.player = pygame.image.load('rec/game/mouse.png')
  25. self.player_r = self.player.get_bounding_rect()
  26. #load images and rects for the comets
  27. self.load_img()
  28. #Pygame clock
  29. self.clock = pygame.time.Clock()
  30. self.last_tick = 0
  31. #upgrades
  32. self.laser = False
  33. self.force_field = False
  34.  
  35. #Variables
  36.  
  37. self.ship = 0
  38. self.start_time = 0
  39. self.time_passed = 0
  40. self.state = 1
  41. self.money = 200
  42. self.str_spd1 = 14
  43. self.str_spd2 = 12
  44. self.str_spd3 = 16
  45. self.force_count = 0
  46.  
  47.  
  48.  
  49.  
  50. while 1:
  51. #Loop self.Loop()
  52. self.Loop()
  53.  
  54. def load_img(self):
  55. #load images for stars and laser
  56. self.explosion = pygame.image.load('rec/game/explosion.png')
  57. self.star = pygame.image.load('rec/game/star.png')
  58. self.star_r = self.star.get_bounding_rect()
  59. self.ran_x = random.randint(20,300)
  60. self.star2 = pygame.image.load('rec/game/star2.png')
  61. self.star2_r = self.star2.get_bounding_rect()
  62. self.ran_x2 = random.randint(20,300)
  63. self.star3 = pygame.image.load('rec/game/star3.png')
  64. self.star3_r = self.star3.get_bounding_rect()
  65. self.ran_x3 = random.randint(20,300)
  66. self.force_img = pygame.image.load('rec/game/force_img.png')
  67.  
  68. def laser_shoot(self):
  69. self.laser_img = pygame.image.load('rec/game/laser.png')
  70. self.laser_img_r = self.laser_img.get_bounding_rect()
  71.  
  72. self.mouse_pos = pygame.mouse.get_pos()
  73. self.mouse_x, self.mouse_y = self.mouse_pos
  74. self.laser_img_r.y-=50
  75. (self.laser_x, self.laser_y) = (self.mouse_x,self.mouse_y)
  76. screen.blit(self.laser_img,(self.laser_x, self.laser_y))
  77.  
  78. def mouse_update(self):
  79. self.mouse_pos = pygame.mouse.get_pos()
  80. self.mouse_x, self.mouse_y = self.mouse_pos
  81. (self.player_r.x, self.player_r.y) = self.mouse_pos
  82.  
  83. def update(self):
  84. #Set random x coord
  85. self.star_r.x = self.ran_x
  86. self.star2_r.x = self.ran_x2
  87. self.star3_r.x = self.ran_x3
  88. # set Comet speeds
  89. self.star_r.y += self.str_spd1
  90. self.star2_r.y += self.str_spd2
  91. self.star3_r.y += self.str_spd3
  92. #blit stars at random
  93. if self.star_r.y > 640:
  94. self.star_r.y = 0
  95. self.ran_x = random.randint(5,110)
  96.  
  97. if self.star2_r.y > 640:
  98. self.star2_r.y = 0
  99. self.ran_x2 = random.randint(100,200)
  100.  
  101. if self.star3_r.y > 640:
  102. self.star3_r.y = 0
  103. self.ran_x3 = random.randint(190,315)
  104.  
  105.  
  106. def blitPlayer(self, screen):
  107. #Blit the layer and the stars
  108. (mouse_x, mouse_y) = self.mouse_pos
  109. if self.force_field == True:
  110. screen.blit(self.force_img,(mouse_x-14, mouse_y-13))
  111.  
  112. screen.blit(self.player,(self.mouse_pos))
  113. screen.blit(self.star,(self.ran_x, self.star_r.y))
  114. screen.blit(self.star2,(self.ran_x2, self.star2_r.y))
  115. screen.blit(self.star3,(self.ran_x3, self.star3_r.y))
  116. #Check if stars collide with player
  117. star_col = self.player_r.colliderect(self.star_r)or self.player_r.colliderect(self.star2_r)or self.player_r.colliderect(self.star3_r)
  118.  
  119. if self.force_field == True and star_col == True:
  120. screen.blit(self.explosion,(self.mouse_pos))
  121. self.force_count+=1
  122.  
  123. if self.force_count >= 9:
  124. self.force_field = False
  125. self.force_count = 0
  126.  
  127. if self.laser == True and pygame.mouse.get_pressed()[0]:
  128. self.laser_shoot()
  129.  
  130. if star_col == True and self.force_field == False:
  131. self.force_count = 0
  132. self.state = 0
  133. if self.money > 0:
  134. self.money = self.money - 25
  135.  
  136.  
  137.  
  138.  
  139. def Draw(self):
  140. #Draw BG and Blit the player and stars
  141. screen.blit(background,(0,0))
  142. self.blitPlayer(screen)
  143.  
  144. def main_menu(self):
  145. #Main screen
  146. self.main = pygame.image.load('rec/screen/main.png')
  147. screen.blit(self.main,(0,0))
  148. self.play = pygame.image.load('rec/screen/play.png')
  149. self.play_r = self.play.get_bounding_rect()
  150. self.play_r.x,self.play_r.y = (100,400)
  151. screen.blit(self.play,(100, 400))
  152. screen.blit(self.player,(self.mouse_pos))
  153. if self.player_r.colliderect(self.play_r)and pygame.mouse.get_pressed()[0]:
  154. self.state = 2
  155. self.star_r.y = 0
  156. self.star2_r.y = 0
  157. self.star3_r.y = 0
  158. self.start_time = time.clock()
  159.  
  160. def store(self):
  161. #if the self state is 3 it opens store
  162. screen.blit(self.player,(self.mouse_pos))
  163. #Blit items and such
  164. self.store_img = pygame.image.load('rec/screen/store.png')
  165. screen.blit(self.store_img,(0,0))
  166.  
  167. #Forcefield item
  168. self.force_item = pygame.image.load('rec/screen/force_field_item.png')
  169. self.force_item_r = self.force_item.get_bounding_rect()
  170. self.force_item_r.x,self.force_item_r.y = (0,200)
  171. screen.blit(self.force_item,(0,200))
  172.  
  173. # Laser Item
  174. self.laser_item = pygame.image.load('rec/screen/laser_item.png')
  175. self.lsr_itm_r = self.laser_item.get_bounding_rect()
  176. self.lsr_itm_r.x,self.lsr_itm_r.y = (0,300)
  177. screen.blit(self.laser_item,(0,300))
  178.  
  179. # play again button
  180. self.store_again = pygame.image.load('rec/screen/play_again.png')
  181. self.store_again_r = self.store_again.get_bounding_rect()
  182. self.store_again_r.x,self.store_again_r.y = (50,600)
  183. screen.blit(self.store_again,(50, 600))
  184. screen.blit(self.player,(self.mouse_pos))
  185.  
  186. #self.laser_item = pygame.image.load('rec/screen/laser_item.png')
  187. #self.lsr_itm_r = self.laser_item.get_bounding_rect()
  188. #screen.blit(self.laser_item,(0,200))
  189. #screen.blit(self.player,(self.mouse_pos))
  190.  
  191. self.store_again = pygame.image.load('rec/screen/play_again.png')
  192. self.store_again_r = self.store_again.get_bounding_rect()
  193. self.store_again_r.x,self.store_again_r.y = (50,600)
  194. screen.blit(self.store_again,(50, 600))
  195.  
  196. #Write the amount of money
  197. myfont = pygame.font.SysFont("impact", 20)
  198. money_amnt = "You Have: %s Dollars" %(str(self.money))
  199. label = myfont.render((money_amnt), 1, (255,255,0))
  200. screen.blit(label, (75, 100))
  201.  
  202.  
  203. # if statements for clicks
  204. screen.blit(self.player,(self.mouse_pos))
  205. if self.player_r.colliderect(self.lsr_itm_r)and pygame.mouse.get_pressed()[0]and self.money >= 150:
  206. self.laser = True
  207. self.money = self.money - 150
  208. if self.player_r.colliderect(self.force_item_r)and pygame.mouse.get_pressed()[0]and self.money >= 50 and self.force_field == False:
  209. self.force_field = True
  210. self.money = self.money - 50
  211. print("force activated")
  212. if self.player_r.colliderect(self.store_again_r)and pygame.mouse.get_pressed()[0]:
  213. self.state = 1
  214.  
  215.  
  216. # if statements for clicks
  217. screen.blit(self.player,(self.mouse_pos))
  218. if self.player_r.colliderect(self.lsr_itm_r)and pygame.mouse.get_pressed()[0]and self.money == 150:
  219. self.laser = True
  220. if self.player_r.colliderect(self.store_again_r)and pygame.mouse.get_pressed()[0]:
  221. self.state = 0
  222. self.money = self.money - 25
  223.  
  224.  
  225. def time_pass(self):
  226. #timer for main game play
  227. self.time_passed = time.clock()
  228. if self.time_passed > (self.start_time + 10):
  229. self.state = 3
  230. self.money = self.money + 50
  231.  
  232. def stage_pass(self):
  233. #get images and blit bbs and imgs for stage_pass
  234. self.round_pass = pygame.image.load('rec/screen/level_pass.png')
  235. screen.blit(self.round_pass,(0,0))
  236. self.store_buttn = pygame.image.load('rec/screen/store_label.png')
  237. self.store_buttn_r = self.store_buttn.get_bounding_rect()
  238. self.store_buttn_r.x,self.store_buttn_r.y = (40,400)
  239. screen.blit(self.store_buttn,(40, 400))
  240. self.play_again = pygame.image.load('rec/screen/play_again.png')
  241. self.play_again_r = self.play_again.get_bounding_rect()
  242. self.play_again_r.x,self.play_again_r.y = (50,500)
  243. screen.blit(self.play_again,(50, 500))
  244. screen.blit(self.player,(self.mouse_pos))
  245.  
  246. if self.player_r.colliderect(self.store_buttn_r)and pygame.mouse.get_pressed()[0]:
  247. self.state = 4
  248. if self.player_r.colliderect(self.play_again_r)and pygame.mouse.get_pressed()[0]:
  249. self.state = 1
  250.  
  251. def game_over(self):
  252. # Game over Screen
  253. key = pygame.key.get_pressed()
  254. screen.blit(game_over,(0,0))
  255. if key[pygame.K_RETURN]:
  256. self.state = 1
  257.  
  258. def Tick(self):
  259. # updates to player location and animation frame
  260. self.last_tick = pygame.time.get_ticks()
  261. self.clock.tick()
  262.  
  263. def eventLoop(self):
  264. # the main event loop, detects keypresses
  265. for event in pygame.event.get():
  266. if event.type == QUIT:
  267. sys.exit()
  268.  
  269. def Loop(self):
  270. # main game loop
  271. self.eventLoop()
  272. self.mouse_update()
  273.  
  274. if self.state == 0:
  275. self.game_over()
  276. if self.state == 1:
  277. self.main_menu()
  278. if self.state == 2:
  279. self.time_pass()
  280.  
  281. if pygame.time.get_ticks() - self.last_tick > 20:
  282. self.update()
  283. self.Tick()
  284. self.Draw()
  285. if self.state ==3:
  286. self.stage_pass()
  287. if self.state == 4:
  288. self.store()
  289. pygame.display.update()
  290.  
  291.  
  292.  
  293.  
  294. Game()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement