diff --git a/game.py b/game.py index 1c7e02b..24bfb11 100644 --- a/game.py +++ b/game.py @@ -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 \ No newline at end of file + 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)