diff --git a/Space Invaders/main.py b/Space Invaders/main.py index d0a9c3c..8dde647 100644 --- a/Space Invaders/main.py +++ b/Space Invaders/main.py @@ -8,6 +8,7 @@ import math from pygame import mixer import time +import sys #Added # import sched @@ -64,7 +65,9 @@ game_over_sound = None # create background -background_img = pygame.image.load("res/images/background.jpg") # 800 x 600 px image +background_img = pygame.image.load("res/images/background.jpg") #Added another background +background_img2 = pygame.image.load("res/images/background2.jpg") + # 800 x 600 px image background_music_paths = ["res/sounds/Space_Invaders_Music.ogg", "res/sounds/Space_Invaders_Music_x2.ogg", "res/sounds/Space_Invaders_Music_x4.ogg", @@ -251,8 +254,10 @@ def level_up(): def respawn(enemy_obj): enemy_obj.x = random.randint(0, (WIDTH - enemy_obj.width)) - enemy_obj.y = random.randint(((HEIGHT / 10) * 1 - (enemy_obj.height / 2)), - ((HEIGHT / 10) * 4 - (enemy_obj.height / 2))) + enemy_obj.y = random.randint( + int((HEIGHT / 10) * 1 - (enemy_obj.height / 2)), #It was missing to declare as int + int((HEIGHT / 10) * 4 - (enemy_obj.height / 2)) + ) def kill_enemy(player_obj, bullet_obj, enemy_obj): @@ -290,10 +295,20 @@ def gameover_screen(): mixer.music.stop() game_over_sound.play() - time.sleep(13.0) - mixer.quit() - - + + pygame.time.set_timer(pygame.USEREVENT, 10000) + + while True: + for event in pygame.event.get(): #Include option to close the game alone after 10 seconds after "Game Over" and also added the option to start again after pressing Enter. + if event.type == pygame.QUIT: + time.sleep(10) + pygame.quit() + sys.exit() + elif event.type == pygame.KEYDOWN: + if event.key == pygame.K_RETURN: + init_game() + return + def gameover(): global running global score @@ -330,7 +345,6 @@ def kill_player(player_obj, enemy_obj, laser_obj): else: gameover() - def destroy_weapons(player_obj, bullet_obj, enemy_obj, laser_obj): bullet_obj.fired = False laser_obj.beamed = False @@ -431,7 +445,10 @@ def init_game(): for lev in range(level): enemy_x = random.randint(0, (WIDTH - enemy_width)) - enemy_y = random.randint(((HEIGHT / 10) * 1 - (enemy_height / 2)), ((HEIGHT / 10) * 4 - (enemy_height / 2))) + enemy_y = random.randint( + int((HEIGHT / 10) * 1 - (enemy_height / 2)), #It was returning a float number that caused an error that prevented the game from starting. I changed it to int for better functionality. + int((HEIGHT / 10) * 4 - (enemy_height / 2)) + ) laser_x = enemy_x + enemy_width / 2 - laser_width / 2 laser_y = enemy_y + laser_height / 2 @@ -456,7 +473,11 @@ def init_game(): # background window.fill((0, 0, 0)) - window.blit(background_img, (0, 0)) + + if difficulty <2: + window.blit(background_img, (0, 0)) + else: + window.blit(background_img2, (0, 0)) # register events for event in pygame.event.get(): @@ -637,4 +658,4 @@ def init_game(): frame_count = 0 total_time = 0 # print("rendering time:", single_frame_rendering_time) - # print("FPS:", fps) + # print("FPS:", fps) \ No newline at end of file diff --git a/Space Invaders/res/images/background2.jpg b/Space Invaders/res/images/background2.jpg new file mode 100644 index 0000000..430e363 Binary files /dev/null and b/Space Invaders/res/images/background2.jpg differ diff --git a/requirements.txt b/requirements.txt index 5ab1cbd..2dadbbd 100644 Binary files a/requirements.txt and b/requirements.txt differ