Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from pygame import *
- from random import randint
- # Background music
- mixer.init()
- mixer.music.load('space.ogg')
- mixer.music.play()
- fire_sound = mixer.Sound('fire.ogg') # ADD THE FIRING SOUND!
- # Load images --- Add your bullets
- img_back = "galaxy.jpg" #game background
- img_hero = "rocket.png" #hero
- img_enemy = "ufo.png" #enemy
- img_bullet = "bullet.png" # Add the bullet
- #Create a window
- win_width = 700
- win_height = 500
- display.set_caption("Shooter")
- window = display.set_mode((win_width, win_height))
- background = transform.scale(image.load(img_back), (win_width, win_height))
- #fonts and captions
- font.init()
- font2 = font.SysFont('Comic Sans MS', 30) # We used this for the score
- #----------------------------------------------------#
- font1 = font.SysFont('Comic Sans MS', 80)
- win = font1.render('YOU WIN!', True, (255, 255, 255))
- lose = font1.render('YOU LOSE!', True, (180, 0, 0))
- #----------------------------------------------------#
- score = 0 # ships destroyed
- lost = 0 # ships missed
- #----------------------------------------------------#
- max_lost = 3
- # How many ships you can lose - but you won't lose yet!
- #----------------------------------------------------#
- # GameSprite class - inheriting from class Sprite
- class GameSprite(sprite.Sprite):
- def __init__(self, player_image, player_x, player_y, size_x, size_y, player_speed):
- # Call for the class (Sprite) constructor:
- sprite.Sprite.__init__(self)
- # Every sprite must store the image property
- self.image = transform.scale(image.load(player_image), (size_x, size_y))
- self.speed = player_speed
- # Every sprite must have the rect property – the rectangle it is fitted in
- self.rect = self.image.get_rect()
- self.rect.x = player_x
- self.rect.y = player_y
- # Puts the character in the window
- def reset(self):
- window.blit(self.image, (self.rect.x, self.rect.y))
- #main player class
- class Player(GameSprite):
- # Function to control the sprite with arrow keys - only LEFT and RIGHT needed
- def update(self):
- keys = key.get_pressed()
- if keys[K_LEFT] and self.rect.x > 5:
- self.rect.x -= self.speed
- if keys[K_RIGHT] and self.rect.x < win_width - 80:
- self.rect.x += self.speed
- # Function to "shoot" (use the player position to create a bullet there)
- #----------------------------------------------------#
- def fire(self):
- bullet = Bullet(img_bullet, self.rect.centerx, self.rect.top, 15, 20, -15)
- bullets.add(bullet)
- #----------------------------------------------------#
- class Enemy(GameSprite):
- # Enemy movement
- def update(self):
- self.rect.y += self.speed
- global lost
- # Disappears upon reaching the screen edge
- if self.rect.y > win_height:
- self.rect.x = randint(80, win_width - 80)
- self.rect.y = 0
- lost = lost + 1
- #----------------------------------------------------#
- # Bullet sprite class
- class Bullet(GameSprite):
- def update(self):
- self.rect.y += self.speed
- # Disappears upon reaching the screen edge
- if self.rect.y < 0:
- self.kill()
- #----------------------------------------------------#
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement