Advertisement
shh_algo_PY

Temp - Shooter 3

Jul 2nd, 2022
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.30 KB | None | 0 0
  1. from pygame import *
  2. from random import randint
  3.  
  4. # Background music
  5. mixer.init()
  6. mixer.music.load('space.ogg')
  7. mixer.music.play()
  8. fire_sound = mixer.Sound('fire.ogg')    # ADD THE FIRING SOUND!
  9.  
  10. # Load images --- Add your bullets
  11. img_back = "galaxy.jpg" #game background
  12. img_hero = "rocket.png" #hero
  13. img_enemy = "ufo.png" #enemy
  14. img_bullet = "bullet.png"               # Add the bullet
  15.  
  16. #Create a window
  17. win_width = 700
  18. win_height = 500
  19. display.set_caption("Shooter")
  20. window = display.set_mode((win_width, win_height))
  21. background = transform.scale(image.load(img_back), (win_width, win_height))
  22.  
  23. #fonts and captions
  24. font.init()
  25. font2 = font.SysFont('Comic Sans MS', 30) # We used this for the score
  26.  
  27. #----------------------------------------------------#
  28. font1 = font.SysFont('Comic Sans MS', 80)
  29. win = font1.render('YOU WIN!', True, (255, 255, 255))
  30. lose = font1.render('YOU LOSE!', True, (180, 0, 0))
  31. #----------------------------------------------------#
  32.  
  33. score = 0  # ships destroyed
  34. lost = 0   # ships missed
  35.  
  36. #----------------------------------------------------#
  37. max_lost = 3    
  38.  
  39. # How many ships you can lose - but you won't lose yet!
  40. #----------------------------------------------------#
  41.  
  42. # GameSprite class - inheriting from class Sprite
  43. class GameSprite(sprite.Sprite):
  44.     def __init__(self, player_image, player_x, player_y, size_x, size_y, player_speed):
  45.         # Call for the class (Sprite) constructor:
  46.         sprite.Sprite.__init__(self)
  47.  
  48.         # Every sprite must store the image property
  49.         self.image = transform.scale(image.load(player_image), (size_x, size_y))
  50.         self.speed = player_speed
  51.  
  52.         # Every sprite must have the rect property – the rectangle it is fitted in
  53.         self.rect = self.image.get_rect()
  54.         self.rect.x = player_x
  55.         self.rect.y = player_y
  56.    
  57.     # Puts the character in the window
  58.     def reset(self):
  59.         window.blit(self.image, (self.rect.x, self.rect.y))
  60.  
  61. #main player class
  62. class Player(GameSprite):
  63.     # Function to control the sprite with arrow keys - only LEFT and RIGHT needed
  64.     def update(self):
  65.         keys = key.get_pressed()
  66.         if keys[K_LEFT] and self.rect.x > 5:
  67.             self.rect.x -= self.speed
  68.         if keys[K_RIGHT] and self.rect.x < win_width - 80:
  69.             self.rect.x += self.speed
  70.    
  71.     # Function to "shoot" (use the player position to create a bullet there)
  72.     #----------------------------------------------------#
  73.     def fire(self):
  74.         bullet = Bullet(img_bullet, self.rect.centerx, self.rect.top, 15, 20, -15)
  75.         bullets.add(bullet)
  76.     #----------------------------------------------------#
  77.  
  78. class Enemy(GameSprite):
  79.     # Enemy movement
  80.     def update(self):
  81.         self.rect.y += self.speed
  82.         global lost
  83.         # Disappears upon reaching the screen edge
  84.         if self.rect.y > win_height:
  85.             self.rect.x = randint(80, win_width - 80)
  86.             self.rect.y = 0
  87.             lost = lost + 1
  88.  
  89. #----------------------------------------------------#
  90. # Bullet sprite class  
  91. class Bullet(GameSprite):
  92.     def update(self):
  93.         self.rect.y += self.speed
  94.         # Disappears upon reaching the screen edge
  95.         if self.rect.y < 0:
  96.             self.kill()
  97. #----------------------------------------------------#
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement