spaceship game in python pdf code example

Example: space shooter game in python

# importing pygame
import pygame
import random
# importing math
import math
# importing mixer
from pygame import mixer
import android
mixer.init()
r = 'ready'
b = 2
space = 0
x = 50
y = 515
start = 10
width = 40
height = 5
# Asteroid
Asteroid1 = []
Asteroid_x = []
Asteroid_y = []
Asteroid_x_change = []
Asteroid_y_change = []
for i in range(30):
    Asteroid1.append(pygame.image.load("alien.png"))
    Asteroid_x.append(random.randint(0, 800))
    Asteroid_y.append(random.randint(50, 150))
    Asteroid_x_change.append(3.8)
    Asteroid_y_change.append(6)
pygame.init()
# Changing the icon of the screen
icon = pygame.image.load('ufo.png')
pygame.display.set_icon(icon)
# Creating the screen
screen = pygame.display.set_mode((800, 600))
# background pic
background = pygame.image.load('space.jpg')
pygame.display.set_caption("Space shooter")
# Colour
BLUE = (100, 100, 255)
RED = (255, 0, 0)
LIME = (180, 255, 100)
'''Asteroid'''
# Player
player = pygame.image.load("player.png")
player_x = 370
player_y = 480
# Bullet
Bullet = pygame.image.load("Bullet.png")
Bullet_x = 370
Bullet_y = 480
Bullet_x_change = 9
Bullet_y_change = 60
Bullet_state = r
# score
score_value = 0
font = pygame.font.Font('freesansbold.ttf', 25)
text_x = 200
text_y = 10






# Creating score function
def score(X, Y):
    scores = font.render('Score : {}'.format(score_value), True, BLUE)
    screen.blit(scores, (X, Y))


# Creating fire function
def fire(x, y):
    global Bullet_state
    Bullet_state = fire
    screen.blit(Bullet, (x + 18, y + 10))


# Creating fire function
def play(X, Y):
    screen.blit(player, (X, Y))


# Creating  Asteroid function
def asteroid_function(X, Y, i):
    screen.blit(Asteroid1[i], (X, Y))


# Creating background function
def background_function():
    screen.blit(background, (0, 0))


# While loop
run = True
while run:
    # calling the background function
    background_function()
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
    keys = pygame.key.get_pressed()
    # player movement
    if keys[pygame.K_LEFT]:
        player_x -= 3
    if keys[pygame.K_RIGHT]:
        player_x += 3
    # Bullet shooting
        laser_sound = mixer.Sound("C:\\laser.wav")
        laser_sound.play()
        Bullet_x = player_x
        fire(Bullet_x, Bullet_y)
        fire(Bullet_x, Bullet_y)
        Bullet_y -= Bullet_y_change
    if Bullet_y <= 0:
        Bullet_y = 480
        Bullet_state = r
        # collision
    if score_value == 300:
        print('you win')
        run = False


    def collision(Bullet_x, Bullet_y, Asteroid_x, Asteroid_y):
        distance = math.sqrt(math.pow(Asteroid_x - Bullet_x, 2) + math.pow(Asteroid_y - Bullet_y, 2))
        if distance < 27:
            return True
        else:
            return False
        # collision
    # boundaries
    if player_x <= 0:
        player_x = 0
    elif player_x >= 736:
        player_x = 736
    # boundaries enemy
    for i in range(30):
        Asteroid_x[i] += Asteroid_x_change[i]
        if Asteroid_x[i] <= 0:
            Asteroid_x_change[i] = 3.8
            Asteroid_y[i] += Asteroid_y_change[i]
        elif Asteroid_x[i] >= 736:
            Asteroid_x_change[i] = -3.8
            Asteroid_y[i] += Asteroid_y_change[i]
        collisions = collision(Asteroid_x[i], Asteroid_y[i], Bullet_x, Bullet_y)
        if collisions:
            Bullet_y = 480
            Bullet_state = 'ready'
            score_value = score_value +  1
            laser_sound = mixer.Sound("C:\\explosion.wav")
            laser_sound.play()
            Asteroid_x.append(random.randint(0, 800))
            Asteroid_y.append(random.randint(50, 150))
        # calling the asteroid function
        asteroid_function(Asteroid_x[i], Asteroid_y[i], i)
    if event.type == pygame.KEYDOWN:
        # quitting the game
        if event.key == ord('q'):
            pygame.quit()
        # changing the spaceship
        if event.key == ord('s'):
            b = b + 1
            if b == 1:
                player = pygame.image.load("player.png")
            if b == 2:
                player = pygame.image.load("l.png")
            if b == 3:
                player = pygame.image.load('player2.png')
            if b == 4:
                b = 1
    # calling the player function
    play(player_x, player_y)
    # calling the score function
    score(text_x, text_y)
    # Refresh Screen
    pygame.display.flip()