All pastes #367142 Raw Edit

Unnamed

public text v1 · immutable
#367142 ·published 2007-02-22 04:13 UTC
rendered paste body
#Galaga Version .02
#2007-02-20 Derek Mcdonald
#################################################################################################################

#import pygame os and sys libraries
import pygame, os, sys
from pygame.locals import*
#################################################################################################################

#define global variables
x = 400
y = 540
ex = 400
ey = 50
ymax = 0
xmax = 750
xmin = 30
vel = 1
sy = y + -5
sx = x

#the clock for keeping movement in time
clock = pygame.time.Clock()

#initialize pygame
pygame.init()

#create window and set up background image
window = pygame.display.set_mode ((800, 600))
pygame.display.set_caption('Galaga!')
surface = pygame.display.get_surface()
background = os.path.join(os.path.dirname(__file__), 'starfield1.bmp')
screen = pygame.image.load (background).convert()



#define function to draw player ship on X, Y plane
def pship(x,y):
	ship = os.path.join(os.path.dirname(__file__), 'pship.bmp')
	playership = pygame.image.load (ship).convert()
	surface.blit (playership, (x, y))
	return x, y
	
#Define function to draw the enemy ship on X, Y plane
def eship(ex,ey):
	eship = os.path.join(os.path.dirname(__file__), 'eship.bmp')
	enemyship = pygame.image.load (eship).convert()
	surface.blit (enemyship, (ex, ey))
	return ex, ey
	
#Define function to move the enemy ship
def emove():
	global xmax
	global xmin
	global vel
	global ex
	if vel == 0:
		if ex != xmax:
			ex = ex + 1
		elif ex == xmax:
			vel = 1
	if vel == 1:
		if ex != xmin:	
			ex = ex - 1
		elif ex == xmin:
			vel = 0
	clock.tick(70)
		
	
#Define functions to control fire the player weapon when fire command is issued
def hit(sx, sy):
	laser3 = os.path.join(os.path.dirname(__file__), 'hit.bmp')
	hit = pygame.image.load (laser3).convert()
	surface.blit(hit,(ex,ey))
def miss(sx,sy):
	laser2 = os.path.join(os.path.dirname(__file__), 'miss.bmp')
	miss = pygame.image.load (laser2).convert()
	surface.blit(miss,(sx,sy))
def pfire(sx, sy):
	sx = x
	laser = os.path.join(os.path.dirname(__file__), 'laser.bmp')
	shot = pygame.image.load (laser).convert()
	surface.blit(shot,(sx,sy))
	return sx, sy
def pshoot(sx, sy):
	if sy <= ymax:
		sy = sy - 1
		pfire(sx, sy)
	clock.tick(80)
	
#Define function to get input and controll exit commands fire command and movement of playership
def input(events):
	global x
	global y
	for event in events:
		if event.type == QUIT:
			sys.exit(0)
		if event.type == pygame.KEYDOWN:
			if event.key == pygame.K_LEFT:
				if x != xmin:
					x = x - 10
			if event.key == pygame.K_RIGHT:
				if x != xmax:
					x = x + 10
			if event.key == pygame.K_SPACE:
				pshoot(sx, sy)
				
		#uncomment the following lines to debug input
		#else:
		#	print event

##################################################################################################################

#start loop
while True:
	
	#refresh screen
	surface.blit (screen, (10,0))
	
	#initiate player ship function
	pship(x,y)

	#initiate enemy ship function
	eship(ex,ey)

	#move the enemy ship
	emove()
	
	#initiate input function
	input (pygame.event.get())

	#iterate loop
	pygame.display.flip()