1
Fork 0

add main game logic (from old testing, needs editing!!!)

This commit is contained in:
Jake Howard 2015-04-28 12:19:59 +01:00
parent 83c455bf1b
commit 747a56857e

99
game.py
View file

@ -1,8 +1,103 @@
import pygame, logging
import bullet, player, textures
from bullet import Bullet
from player import Shooter
from textures import Textures
from target import Target
PLAYING_GAME = False
WINDOW_SIZE = (640,480)
FPS = 60
def rounding(x, base): return int(base * round(float(x)/base))
MENU_WINDOW = ""
def initialise(menu, options):
pass
pygame.mixer.pre_init(44100, -16, 2, 2048)
pygame.init()
window = pygame.display.set_mode(WINDOW_SIZE)
window_rect = window.get_rect()
exit_code = play(window) # Run main game loop
pygame.quit()
# Reshow the main menu
def generate_targets():
group = pygame.sprite.Group()
target_object = Target()
for i in range(10,150,50):
for j in range(10, 150, 50):
temp = Target()
logging.debug("Target generated with position ({},{})".format(j,i))
temp.set_position(j,i)
group.add(temp)
del temp
return group
def play(window):
player = Shooter()
player.set_position(WINDOW_SIZE[0]/2, WINDOW_SIZE[1]*0.9)
player_group = pygame.sprite.Group()
player_group.add(player)
target_group = generate_targets()
bullet_group = pygame.sprite.Group()
clock = pygame.time.Clock()
PLAYING_GAME = True
while PLAYING_GAME:
window.fill((0,0,0))
target_group.update()
bullet_group.update()
for event in pygame.event.get():
if event.type == pygame.QUIT:
logging.critical("Exiting Game...")
PLAYING_GAME = False
return "QUIT"
if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
temp = Bullet(player)
bullet_group.add(temp)
keys = pygame.key.get_pressed()
if keys[pygame.K_RIGHT]:
player.move(player.speed)
if keys[pygame.K_LEFT]:
player.move(-player.speed)
if keys[pygame.K_s]:
temp = Bullet(player)
bullet_group.add(temp)
for sprite in bullet_group:
if not sprite.at_goal():
sprite.to_goal()
if sprite.rect.y < 0:
bullet_group.remove(sprite)
for bullet in bullet_group:
hit_list = pygame.sprite.spritecollide(bullet, target_group, True)
for target in hit_list:
target_group.remove(target)
bullet_group.remove(bullet)
logging.info("Hit Target!")
bullet_group.draw(window)
target_group.draw(window)
player_group.draw(window)
pygame.display.update()
clock.tick(FPS)
if __name__ == "__main__":
initialise(None, None)