From 1cf2cf95ce1c0100cc3fdcf571a5c18347bd099d Mon Sep 17 00:00:00 2001 From: superunluck Date: Sat, 18 Apr 2026 17:52:43 +0700 Subject: [PATCH 1/7] modified: Space Invaders/main.py new file: Space Invaders/maintoretype.py --- Space Invaders/main.py | 417 +-------------------- Space Invaders/maintoretype.py | 640 +++++++++++++++++++++++++++++++++ 2 files changed, 649 insertions(+), 408 deletions(-) create mode 100644 Space Invaders/maintoretype.py diff --git a/Space Invaders/main.py b/Space Invaders/main.py index d0a9c3c..8708550 100644 --- a/Space Invaders/main.py +++ b/Space Invaders/main.py @@ -1,21 +1,13 @@ -# Author: Atanu Sarkar -# Space Invaders (my version) -# v1.1.4 -# 11-April-2020, 03:04 AM (IST) - import pygame import random import math from pygame import mixer import time -# import sched -# game constants WIDTH = 800 HEIGHT = 600 -# global variables running = True pause_state = 0 score = 0 @@ -34,16 +26,13 @@ frame_count = 0 fps = 0 -# game objects player = type('Player', (), {})() bullet = type('Bullet', (), {})() enemies = [] lasers = [] -# initialize pygame pygame.init() -# Input key states (keyboard) LEFT_ARROW_KEY_PRESSED = 0 RIGHT_ARROW_KEY_PRESSED = 0 UP_ARROW_KEY_PRESSED = 0 @@ -51,20 +40,17 @@ ENTER_KEY_PRESSED = 0 ESC_KEY_PRESSED = 0 -# create display window window = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("Space Invaders") window_icon = pygame.image.load("res/images/alien.png") pygame.display.set_icon(window_icon) -# game sounds pause_sound = None level_up_sound = None weapon_annihilation_sound = None 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") background_music_paths = ["res/sounds/Space_Invaders_Music.ogg", "res/sounds/Space_Invaders_Music_x2.ogg", "res/sounds/Space_Invaders_Music_x4.ogg", @@ -84,7 +70,6 @@ def init_background_music(): mixer.music.play(-1) -# create player class class Player: def __init__(self, img_path, width, height, x, y, dx, dy, kill_sound_path): self.img_path = img_path @@ -102,7 +87,6 @@ def draw(self): window.blit(self.img, (self.x, self.y)) -# create enemy class class Enemy: def __init__(self, img_path, width, height, x, y, dx, dy, kill_sound_path): self.img_path = img_path @@ -120,7 +104,6 @@ def draw(self): window.blit(self.img, (self.x, self.y)) -# create bullet class class Bullet: def __init__(self, img_path, width, height, x, y, dx, dy, fire_sound_path): self.img_path = img_path @@ -140,7 +123,6 @@ def draw(self): window.blit(self.img, (self.x, self.y)) -# create laser class class Laser: def __init__(self, img_path, width, height, x, y, dx, dy, shoot_probability, relaxation_time, beam_sound_path): self.img_path = img_path @@ -166,26 +148,22 @@ def draw(self): def scoreboard(): x_offset = 10 y_offset = 10 - # set font type and size font = pygame.font.SysFont("calibre", 16) - # render font and text sprites score_sprint = font.render("SCORE : " + str(score), True, (255, 255, 255)) - highest_score_sprint = font.render("HI-SCORE : " + str(highest_score), True, (255, 255, 255)) + hightst_score_sprint = font.render("HI-SCORE : " + str(highest_score), True, (255, 255, 255)) level_sprint = font.render("LEVEL : " + str(level), True, (255, 255, 255)) difficulty_sprint = font.render("DIFFICULTY : " + str(difficulty), True, (255, 255, 255)) life_sprint = font.render("LIFE LEFT : " + str(life) + " | " + ("@ " * life), True, (255, 255, 255)) - # performance info fps_sprint = font.render("FPS : " + str(fps), True, (255, 255, 255)) frame_time_in_ms = round(single_frame_rendering_time * 1000, 2) frame_time_sprint = font.render("FT : " + str(frame_time_in_ms) + " ms", True, (255, 255, 255)) - # place the font sprites on the screen window.blit(score_sprint, (x_offset, y_offset)) - window.blit(highest_score_sprint, (x_offset, y_offset + 20)) - window.blit(level_sprint, (x_offset, y_offset + 40)) - window.blit(difficulty_sprint, (x_offset, y_offset + 60)) + window.blit(hightst_score_sprint, (x_offset, y_offset + 20)) + window.blit(level_sprint, (x_offset, y_offset, + 40)) + window.blit(difficulty.sprint, (x_offset, y_offset + 60)) window.blit(life_sprint, (x_offset, y_offset + 80)) window.blit(fps_sprint, (WIDTH - 80, y_offset)) window.blit(frame_time_sprint, (WIDTH - 80, y_offset + 20)) @@ -200,15 +178,6 @@ def collision_check(object1, object2): return distance < ((object1.width + object2.width) / 2) -# def collision_check(object1_x, object1_y, object1_diameter, object2_x, object2_y, object2_diameter): -# x1_cm = object1_x + object1_diameter / 2 -# y1_cm = object1_y + object1_diameter / 2 -# x2_cm = object2_x + object2_diameter / 2 -# y2_cm = object2_y + object2_diameter / 2 -# distance = math.sqrt(math.pow((x2_cm - x1_cm), 2) + math.pow((y2_cm - y1_cm), 2)) -# return distance < ((object1_diameter + object2_diameter) / 2) - - def level_up(): global life global level @@ -216,20 +185,8 @@ def level_up(): global max_difficulty_to_level_up level_up_sound.play() level += 1 - life += 1 # grant a life - difficulty = 1 # reset difficulty - # TODO: change player and bullet speeds, enemy laser speed and firing probability wrt level - # come up with interesting gameplay ideas. - # variables in hand: - # 1. speed of weapons - # 2. enemy (up to 6) & player velocity - # 3. laser firing probability - # future ideas: - # 1. add new type of enemies - # 2. add new player spaceship and bullets! - # future features: - # 1. create player profile ad store highest score to DB - # 2. multiplayer + life += 1 + difficulty = 1 if level % 3 == 0: player.dx += 1 bullet.dy += 1 @@ -240,7 +197,6 @@ def level_up(): each_laser.shoot_probability = 1.0 if max_difficulty_to_level_up > 7: max_difficulty_to_level_up = 7 - font = pygame.font.SysFont("freesansbold", 64) gameover_sprint = font.render("LEVEL UP", True, (255, 255, 255)) window.blit(gameover_sprint, (WIDTH / 2 - 120, HEIGHT / 2 - 32)) @@ -248,7 +204,6 @@ def level_up(): init_game() time.sleep(1.0) - 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)), @@ -267,7 +222,7 @@ def kill_enemy(player_obj, bullet_obj, enemy_obj): kills += 1 if kills % max_kills_to_difficulty_up == 0: difficulty += 1 - if (difficulty == max_difficulty_to_level_up) and (life != 0): + if (difficulty == max_difficulty_to_level_up) and ( life != 0): level_up() init_background_music() print("Score:", score) @@ -283,358 +238,4 @@ def rebirth(player_obj): def gameover_screen(): scoreboard() - font = pygame.font.SysFont("freesansbold", 64) - gameover_sprint = font.render("GAME OVER", True, (255, 255, 255)) - window.blit(gameover_sprint, (WIDTH / 2 - 140, HEIGHT / 2 - 32)) - pygame.display.update() - - mixer.music.stop() - game_over_sound.play() - time.sleep(13.0) - mixer.quit() - - -def gameover(): - global running - global score - global highest_score - - if score > highest_score: - highest_score = score - - # console display - print("----------------") - print("GAME OVER !!") - print("----------------") - print("you died at") - print("Level:", level) - print("difficulty:", difficulty) - print("Your Score:", score) - print("----------------") - print("Try Again !!") - print("----------------") - running = False - gameover_screen() - - -def kill_player(player_obj, enemy_obj, laser_obj): - global life - laser_obj.beamed = False - player_obj.kill_sound.play() - laser_obj.x = enemy_obj.x + enemy_obj.width / 2 - laser_obj.width / 2 - laser_obj.y = enemy_obj.y + laser_obj.height / 2 - life -= 1 - print("Life Left:", life) - if life > 0: - rebirth(player_obj) - else: - gameover() - - -def destroy_weapons(player_obj, bullet_obj, enemy_obj, laser_obj): - bullet_obj.fired = False - laser_obj.beamed = False - weapon_annihilation_sound.play() - bullet_obj.x = player_obj.x + player_obj.width / 2 - bullet_obj.width / 2 - bullet_obj.y = player_obj.y + bullet_obj.height / 2 - laser_obj.x = enemy_obj.x + enemy_obj.width / 2 - laser_obj.width / 2 - laser_obj.y = enemy_obj.y + laser_obj.height / 2 - - -# timer = sched.scheduler(time.time, time.sleep) -# -# -# def calculate_fps(sc): -# global frame_count -# fps = frame_count -# print("FPS =", fps) -# frame_count = 0 -# timer.enter(60, 1, calculate_fps, (sc,)) -# -# -# timer.enter(60, 1, calculate_fps, (timer, )) -# timer.run() - - -def pause_game(): - pause_sound.play() - scoreboard() - font = pygame.font.SysFont("freesansbold", 64) - gameover_sprint = font.render("PAUSED", True, (255, 255, 255)) - window.blit(gameover_sprint, (WIDTH / 2 - 80, HEIGHT / 2 - 32)) - pygame.display.update() - mixer.music.pause() - - -def init_game(): - global pause_sound - global level_up_sound - global game_over_sound - global weapon_annihilation_sound - - pause_sound = mixer.Sound("res/sounds/pause.wav") - level_up_sound = mixer.Sound("res/sounds/1up.wav") - game_over_sound = mixer.Sound("res/sounds/gameover.wav") - weapon_annihilation_sound = mixer.Sound("res/sounds/annihilation.wav") - - # player - player_img_path = "res/images/spaceship.png" # 64 x 64 px image - player_width = 64 - player_height = 64 - player_x = (WIDTH / 2) - (player_width / 2) - player_y = (HEIGHT / 10) * 9 - (player_height / 2) - player_dx = initial_player_velocity - player_dy = 0 - player_kill_sound_path = "res/sounds/explosion.wav" - - global player - player = Player(player_img_path, player_width, player_height, player_x, player_y, player_dx, player_dy, - player_kill_sound_path) - - # bullet - bullet_img_path = "res/images/bullet.png" # 32 x 32 px image - bullet_width = 32 - bullet_height = 32 - bullet_x = player_x + player_width / 2 - bullet_width / 2 - bullet_y = player_y + bullet_height / 2 - bullet_dx = 0 - bullet_dy = weapon_shot_velocity - bullet_fire_sound_path = "res/sounds/gunshot.wav" - - global bullet - bullet = Bullet(bullet_img_path, bullet_width, bullet_height, bullet_x, bullet_y, bullet_dx, bullet_dy, - bullet_fire_sound_path) - - # enemy (number of enemy = level number) - enemy_img_path = "res/images/enemy.png" # 64 x 64 px image - enemy_width = 64 - enemy_height = 64 - enemy_dx = initial_enemy_velocity - enemy_dy = (HEIGHT / 10) / 2 - enemy_kill_sound_path = "res/sounds/enemykill.wav" - - # laser beam (equals number of enemies and retains corresponding enemy position) - laser_img_path = "res/images/beam.png" # 24 x 24 px image - laser_width = 24 - laser_height = 24 - laser_dx = 0 - laser_dy = weapon_shot_velocity - shoot_probability = 0.3 - relaxation_time = 100 - laser_beam_sound_path = "res/sounds/laser.wav" - - global enemies - global lasers - - enemies.clear() - lasers.clear() - - 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))) - laser_x = enemy_x + enemy_width / 2 - laser_width / 2 - laser_y = enemy_y + laser_height / 2 - - enemy_obj = Enemy(enemy_img_path, enemy_width, enemy_height, enemy_x, enemy_y, enemy_dx, enemy_dy, - enemy_kill_sound_path) - enemies.append(enemy_obj) - - laser_obj = Laser(laser_img_path, laser_width, laser_height, laser_x, laser_y, laser_dx, laser_dy, - shoot_probability, relaxation_time, laser_beam_sound_path) - lasers.append(laser_obj) - - -# init game -init_game() -init_background_music() -runned_once = False - -# main game loop begins -while running: - # start of frame timing - start_time = time.time() - - # background - window.fill((0, 0, 0)) - window.blit(background_img, (0, 0)) - - # register events - for event in pygame.event.get(): - # Quit Event - if event.type == pygame.QUIT: - running = False - - # Keypress Down Event - if event.type == pygame.KEYDOWN: - # Left Arrow Key down - if event.key == pygame.K_LEFT: - print("LOG: Left Arrow Key Pressed Down") - LEFT_ARROW_KEY_PRESSED = 1 - # Right Arrow Key down - if event.key == pygame.K_RIGHT: - print("LOG: Right Arrow Key Pressed Down") - RIGHT_ARROW_KEY_PRESSED = 1 - # Up Arrow Key down - if event.key == pygame.K_UP: - print("LOG: Up Arrow Key Pressed Down") - UP_ARROW_KEY_PRESSED = 1 - # Space Bar down - if event.key == pygame.K_SPACE: - print("LOG: Space Bar Pressed Down") - SPACE_BAR_PRESSED = 1 - # Enter Key down ("Carriage RETURN key" from old typewriter lingo) - if event.key == pygame.K_RETURN: - print("LOG: Enter Key Pressed Down") - ENTER_KEY_PRESSED = 1 - pause_state += 1 - # Esc Key down - if event.key == pygame.K_ESCAPE: - print("LOG: Escape Key Pressed Down") - ESC_KEY_PRESSED = 1 - pause_state += 1 - - # Keypress Up Event - if event.type == pygame.KEYUP: - # Right Arrow Key up - if event.key == pygame.K_RIGHT: - print("LOG: Right Arrow Key Released") - RIGHT_ARROW_KEY_PRESSED = 0 - # Left Arrow Key up - if event.key == pygame.K_LEFT: - print("LOG: Left Arrow Key Released") - LEFT_ARROW_KEY_PRESSED = 0 - # Up Arrow Key up - if event.key == pygame.K_UP: - print("LOG: Up Arrow Key Released") - UP_ARROW_KEY_PRESSED = 0 - # Space Bar up - if event.key == pygame.K_SPACE: - print("LOG: Space Bar Released") - SPACE_BAR_PRESSED = 0 - # Enter Key up ("Carriage RETURN key" from old typewriter lingo) - if event.key == pygame.K_RETURN: - print("LOG: Enter Key Released") - ENTER_KEY_PRESSED = 0 - # Esc Key up - if event.key == pygame.K_ESCAPE: - print("LOG: Escape Key Released") - ESC_KEY_PRESSED = 0 - - # check for pause game event - if pause_state == 2: - pause_state = 0 - runned_once = False - mixer.music.unpause() - if pause_state == 1: - if not runned_once: - runned_once = True - pause_game() - continue - # manipulate game objects based on events and player actions - # player spaceship movement - if RIGHT_ARROW_KEY_PRESSED: - player.x += player.dx - if LEFT_ARROW_KEY_PRESSED: - player.x -= player.dx - # bullet firing - if (SPACE_BAR_PRESSED or UP_ARROW_KEY_PRESSED) and not bullet.fired: - bullet.fired = True - bullet.fire_sound.play() - bullet.x = player.x + player.width / 2 - bullet.width / 2 - bullet.y = player.y + bullet.height / 2 - # bullet movement - if bullet.fired: - bullet.y -= bullet.dy - - # iter through every enemies and lasers - for i in range(len(enemies)): - # laser beaming - if not lasers[i].beamed: - lasers[i].shoot_timer += 1 - if lasers[i].shoot_timer == lasers[i].relaxation_time: - lasers[i].shoot_timer = 0 - random_chance = random.randint(0, 100) - if random_chance <= (lasers[i].shoot_probability * 100): - lasers[i].beamed = True - lasers[i].beam_sound.play() - lasers[i].x = enemies[i].x + enemies[i].width / 2 - lasers[i].width / 2 - lasers[i].y = enemies[i].y + lasers[i].height / 2 - # enemy movement - enemies[i].x += enemies[i].dx * float(2 ** (difficulty - 1)) - # laser movement - if lasers[i].beamed: - lasers[i].y += lasers[i].dy - - # collision check - for i in range(len(enemies)): - bullet_enemy_collision = collision_check(bullet, enemies[i]) - if bullet_enemy_collision: - kill_enemy(player, bullet, enemies[i]) - - for i in range(len(lasers)): - laser_player_collision = collision_check(lasers[i], player) - if laser_player_collision: - kill_player(player, enemies[i], lasers[i]) - - for i in range(len(enemies)): - enemy_player_collision = collision_check(enemies[i], player) - if enemy_player_collision: - kill_enemy(player, bullet, enemies[i]) - kill_player(player, enemies[i], lasers[i]) - - for i in range(len(lasers)): - bullet_laser_collision = collision_check(bullet, lasers[i]) - if bullet_laser_collision: - destroy_weapons(player, bullet, enemies[i], lasers[i]) - - # boundary check: 0 <= x <= WIDTH, 0 <= y <= HEIGHT - # player spaceship - if player.x < 0: - player.x = 0 - if player.x > WIDTH - player.width: - player.x = WIDTH - player.width - # enemy - for enemy in enemies: - if enemy.x <= 0: - enemy.dx = abs(enemy.dx) * 1 - enemy.y += enemy.dy - if enemy.x >= WIDTH - enemy.width: - enemy.dx = abs(enemy.dx) * -1 - enemy.y += enemy.dy - # bullet - if bullet.y < 0: - bullet.fired = False - bullet.x = player.x + player.width / 2 - bullet.width / 2 - bullet.y = player.y + bullet.height / 2 - # laser - for i in range(len(lasers)): - if lasers[i].y > HEIGHT: - lasers[i].beamed = False - lasers[i].x = enemies[i].x + enemies[i].width / 2 - lasers[i].width / 2 - lasers[i].y = enemies[i].y + lasers[i].height / 2 - - # create frame by placing objects on the surface - scoreboard() - for laser in lasers: - laser.draw() - for enemy in enemies: - enemy.draw() - bullet.draw() - player.draw() - - # render the display - pygame.display.update() - - # end of rendering, end on a frame - frame_count += 1 - end_time = time.time() - single_frame_rendering_time = end_time - start_time - # fps = 1 / render_time - - total_time = total_time + single_frame_rendering_time - if total_time >= 1.0: - fps = frame_count - frame_count = 0 - total_time = 0 - # print("rendering time:", single_frame_rendering_time) - # print("FPS:", fps) + font= pygame.font.SysFont \ No newline at end of file diff --git a/Space Invaders/maintoretype.py b/Space Invaders/maintoretype.py new file mode 100644 index 0000000..d0a9c3c --- /dev/null +++ b/Space Invaders/maintoretype.py @@ -0,0 +1,640 @@ +# Author: Atanu Sarkar +# Space Invaders (my version) +# v1.1.4 +# 11-April-2020, 03:04 AM (IST) + +import pygame +import random +import math +from pygame import mixer +import time + +# import sched + +# game constants +WIDTH = 800 +HEIGHT = 600 + +# global variables +running = True +pause_state = 0 +score = 0 +highest_score = 0 +life = 3 +kills = 0 +difficulty = 1 +level = 1 +max_kills_to_difficulty_up = 5 +max_difficulty_to_level_up = 5 +initial_player_velocity = 3.0 +initial_enemy_velocity = 1.0 +weapon_shot_velocity = 5.0 +single_frame_rendering_time = 0 +total_time = 0 +frame_count = 0 +fps = 0 + +# game objects +player = type('Player', (), {})() +bullet = type('Bullet', (), {})() +enemies = [] +lasers = [] + +# initialize pygame +pygame.init() + +# Input key states (keyboard) +LEFT_ARROW_KEY_PRESSED = 0 +RIGHT_ARROW_KEY_PRESSED = 0 +UP_ARROW_KEY_PRESSED = 0 +SPACE_BAR_PRESSED = 0 +ENTER_KEY_PRESSED = 0 +ESC_KEY_PRESSED = 0 + +# create display window +window = pygame.display.set_mode((WIDTH, HEIGHT)) +pygame.display.set_caption("Space Invaders") +window_icon = pygame.image.load("res/images/alien.png") +pygame.display.set_icon(window_icon) + +# game sounds +pause_sound = None +level_up_sound = None +weapon_annihilation_sound = None +game_over_sound = None + +# create background +background_img = pygame.image.load("res/images/background.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", + "res/sounds/Space_Invaders_Music_x8.ogg", + "res/sounds/Space_Invaders_Music_x16.ogg", + "res/sounds/Space_Invaders_Music_x32.ogg"] + + +def init_background_music(): + if difficulty == 1: + mixer.quit() + mixer.init() + if difficulty <= 6: + mixer.music.load(background_music_paths[difficulty - 1]) + else: + mixer.music.load(background_music_paths[5]) + mixer.music.play(-1) + + +# create player class +class Player: + def __init__(self, img_path, width, height, x, y, dx, dy, kill_sound_path): + self.img_path = img_path + self.img = pygame.image.load(self.img_path) + self.width = width + self.height = height + self.x = x + self.y = y + self.dx = dx + self.dy = dy + self.kill_sound_path = kill_sound_path + self.kill_sound = mixer.Sound(self.kill_sound_path) + + def draw(self): + window.blit(self.img, (self.x, self.y)) + + +# create enemy class +class Enemy: + def __init__(self, img_path, width, height, x, y, dx, dy, kill_sound_path): + self.img_path = img_path + self.img = pygame.image.load(self.img_path) + self.width = width + self.height = height + self.x = x + self.y = y + self.dx = dx + self.dy = dy + self.kill_sound_path = kill_sound_path + self.kill_sound = mixer.Sound(self.kill_sound_path) + + def draw(self): + window.blit(self.img, (self.x, self.y)) + + +# create bullet class +class Bullet: + def __init__(self, img_path, width, height, x, y, dx, dy, fire_sound_path): + self.img_path = img_path + self.img = pygame.image.load(self.img_path) + self.width = width + self.height = height + self.x = x + self.y = y + self.dx = dx + self.dy = dy + self.fired = False + self.fire_sound_path = fire_sound_path + self.fire_sound = mixer.Sound(self.fire_sound_path) + + def draw(self): + if self.fired: + window.blit(self.img, (self.x, self.y)) + + +# create laser class +class Laser: + def __init__(self, img_path, width, height, x, y, dx, dy, shoot_probability, relaxation_time, beam_sound_path): + self.img_path = img_path + self.img = pygame.image.load(self.img_path) + self.width = width + self.height = height + self.x = x + self.y = y + self.dx = dx + self.dy = dy + self.beamed = False + self.shoot_probability = shoot_probability + self.shoot_timer = 0 + self.relaxation_time = relaxation_time + self.beam_sound_path = beam_sound_path + self.beam_sound = mixer.Sound(self.beam_sound_path) + + def draw(self): + if self.beamed: + window.blit(self.img, (self.x, self.y)) + + +def scoreboard(): + x_offset = 10 + y_offset = 10 + # set font type and size + font = pygame.font.SysFont("calibre", 16) + + # render font and text sprites + score_sprint = font.render("SCORE : " + str(score), True, (255, 255, 255)) + highest_score_sprint = font.render("HI-SCORE : " + str(highest_score), True, (255, 255, 255)) + level_sprint = font.render("LEVEL : " + str(level), True, (255, 255, 255)) + difficulty_sprint = font.render("DIFFICULTY : " + str(difficulty), True, (255, 255, 255)) + life_sprint = font.render("LIFE LEFT : " + str(life) + " | " + ("@ " * life), True, (255, 255, 255)) + + # performance info + fps_sprint = font.render("FPS : " + str(fps), True, (255, 255, 255)) + frame_time_in_ms = round(single_frame_rendering_time * 1000, 2) + frame_time_sprint = font.render("FT : " + str(frame_time_in_ms) + " ms", True, (255, 255, 255)) + + # place the font sprites on the screen + window.blit(score_sprint, (x_offset, y_offset)) + window.blit(highest_score_sprint, (x_offset, y_offset + 20)) + window.blit(level_sprint, (x_offset, y_offset + 40)) + window.blit(difficulty_sprint, (x_offset, y_offset + 60)) + window.blit(life_sprint, (x_offset, y_offset + 80)) + window.blit(fps_sprint, (WIDTH - 80, y_offset)) + window.blit(frame_time_sprint, (WIDTH - 80, y_offset + 20)) + + +def collision_check(object1, object2): + x1_cm = object1.x + object1.width / 2 + y1_cm = object1.y + object1.width / 2 + x2_cm = object2.x + object2.width / 2 + y2_cm = object2.y + object2.width / 2 + distance = math.sqrt(math.pow((x2_cm - x1_cm), 2) + math.pow((y2_cm - y1_cm), 2)) + return distance < ((object1.width + object2.width) / 2) + + +# def collision_check(object1_x, object1_y, object1_diameter, object2_x, object2_y, object2_diameter): +# x1_cm = object1_x + object1_diameter / 2 +# y1_cm = object1_y + object1_diameter / 2 +# x2_cm = object2_x + object2_diameter / 2 +# y2_cm = object2_y + object2_diameter / 2 +# distance = math.sqrt(math.pow((x2_cm - x1_cm), 2) + math.pow((y2_cm - y1_cm), 2)) +# return distance < ((object1_diameter + object2_diameter) / 2) + + +def level_up(): + global life + global level + global difficulty + global max_difficulty_to_level_up + level_up_sound.play() + level += 1 + life += 1 # grant a life + difficulty = 1 # reset difficulty + # TODO: change player and bullet speeds, enemy laser speed and firing probability wrt level + # come up with interesting gameplay ideas. + # variables in hand: + # 1. speed of weapons + # 2. enemy (up to 6) & player velocity + # 3. laser firing probability + # future ideas: + # 1. add new type of enemies + # 2. add new player spaceship and bullets! + # future features: + # 1. create player profile ad store highest score to DB + # 2. multiplayer + if level % 3 == 0: + player.dx += 1 + bullet.dy += 1 + max_difficulty_to_level_up += 1 + for each_laser in lasers: + each_laser.shoot_probability += 0.1 + if each_laser.shoot_probability > 1.0: + each_laser.shoot_probability = 1.0 + if max_difficulty_to_level_up > 7: + max_difficulty_to_level_up = 7 + + font = pygame.font.SysFont("freesansbold", 64) + gameover_sprint = font.render("LEVEL UP", True, (255, 255, 255)) + window.blit(gameover_sprint, (WIDTH / 2 - 120, HEIGHT / 2 - 32)) + pygame.display.update() + init_game() + time.sleep(1.0) + + +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))) + + +def kill_enemy(player_obj, bullet_obj, enemy_obj): + global score + global kills + global difficulty + bullet_obj.fired = False + enemy_obj.kill_sound.play() + bullet_obj.x = player_obj.x + player_obj.width / 2 - bullet_obj.width / 2 + bullet_obj.y = player_obj.y + bullet_obj.height / 2 + score = score + 10 * difficulty * level + kills += 1 + if kills % max_kills_to_difficulty_up == 0: + difficulty += 1 + if (difficulty == max_difficulty_to_level_up) and (life != 0): + level_up() + init_background_music() + print("Score:", score) + print("level:", level) + print("difficulty:", difficulty) + respawn(enemy_obj) + + +def rebirth(player_obj): + player_obj.x = (WIDTH / 2) - (player_obj.width / 2) + player_obj.y = (HEIGHT / 10) * 9 - (player_obj.height / 2) + + +def gameover_screen(): + scoreboard() + font = pygame.font.SysFont("freesansbold", 64) + gameover_sprint = font.render("GAME OVER", True, (255, 255, 255)) + window.blit(gameover_sprint, (WIDTH / 2 - 140, HEIGHT / 2 - 32)) + pygame.display.update() + + mixer.music.stop() + game_over_sound.play() + time.sleep(13.0) + mixer.quit() + + +def gameover(): + global running + global score + global highest_score + + if score > highest_score: + highest_score = score + + # console display + print("----------------") + print("GAME OVER !!") + print("----------------") + print("you died at") + print("Level:", level) + print("difficulty:", difficulty) + print("Your Score:", score) + print("----------------") + print("Try Again !!") + print("----------------") + running = False + gameover_screen() + + +def kill_player(player_obj, enemy_obj, laser_obj): + global life + laser_obj.beamed = False + player_obj.kill_sound.play() + laser_obj.x = enemy_obj.x + enemy_obj.width / 2 - laser_obj.width / 2 + laser_obj.y = enemy_obj.y + laser_obj.height / 2 + life -= 1 + print("Life Left:", life) + if life > 0: + rebirth(player_obj) + else: + gameover() + + +def destroy_weapons(player_obj, bullet_obj, enemy_obj, laser_obj): + bullet_obj.fired = False + laser_obj.beamed = False + weapon_annihilation_sound.play() + bullet_obj.x = player_obj.x + player_obj.width / 2 - bullet_obj.width / 2 + bullet_obj.y = player_obj.y + bullet_obj.height / 2 + laser_obj.x = enemy_obj.x + enemy_obj.width / 2 - laser_obj.width / 2 + laser_obj.y = enemy_obj.y + laser_obj.height / 2 + + +# timer = sched.scheduler(time.time, time.sleep) +# +# +# def calculate_fps(sc): +# global frame_count +# fps = frame_count +# print("FPS =", fps) +# frame_count = 0 +# timer.enter(60, 1, calculate_fps, (sc,)) +# +# +# timer.enter(60, 1, calculate_fps, (timer, )) +# timer.run() + + +def pause_game(): + pause_sound.play() + scoreboard() + font = pygame.font.SysFont("freesansbold", 64) + gameover_sprint = font.render("PAUSED", True, (255, 255, 255)) + window.blit(gameover_sprint, (WIDTH / 2 - 80, HEIGHT / 2 - 32)) + pygame.display.update() + mixer.music.pause() + + +def init_game(): + global pause_sound + global level_up_sound + global game_over_sound + global weapon_annihilation_sound + + pause_sound = mixer.Sound("res/sounds/pause.wav") + level_up_sound = mixer.Sound("res/sounds/1up.wav") + game_over_sound = mixer.Sound("res/sounds/gameover.wav") + weapon_annihilation_sound = mixer.Sound("res/sounds/annihilation.wav") + + # player + player_img_path = "res/images/spaceship.png" # 64 x 64 px image + player_width = 64 + player_height = 64 + player_x = (WIDTH / 2) - (player_width / 2) + player_y = (HEIGHT / 10) * 9 - (player_height / 2) + player_dx = initial_player_velocity + player_dy = 0 + player_kill_sound_path = "res/sounds/explosion.wav" + + global player + player = Player(player_img_path, player_width, player_height, player_x, player_y, player_dx, player_dy, + player_kill_sound_path) + + # bullet + bullet_img_path = "res/images/bullet.png" # 32 x 32 px image + bullet_width = 32 + bullet_height = 32 + bullet_x = player_x + player_width / 2 - bullet_width / 2 + bullet_y = player_y + bullet_height / 2 + bullet_dx = 0 + bullet_dy = weapon_shot_velocity + bullet_fire_sound_path = "res/sounds/gunshot.wav" + + global bullet + bullet = Bullet(bullet_img_path, bullet_width, bullet_height, bullet_x, bullet_y, bullet_dx, bullet_dy, + bullet_fire_sound_path) + + # enemy (number of enemy = level number) + enemy_img_path = "res/images/enemy.png" # 64 x 64 px image + enemy_width = 64 + enemy_height = 64 + enemy_dx = initial_enemy_velocity + enemy_dy = (HEIGHT / 10) / 2 + enemy_kill_sound_path = "res/sounds/enemykill.wav" + + # laser beam (equals number of enemies and retains corresponding enemy position) + laser_img_path = "res/images/beam.png" # 24 x 24 px image + laser_width = 24 + laser_height = 24 + laser_dx = 0 + laser_dy = weapon_shot_velocity + shoot_probability = 0.3 + relaxation_time = 100 + laser_beam_sound_path = "res/sounds/laser.wav" + + global enemies + global lasers + + enemies.clear() + lasers.clear() + + 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))) + laser_x = enemy_x + enemy_width / 2 - laser_width / 2 + laser_y = enemy_y + laser_height / 2 + + enemy_obj = Enemy(enemy_img_path, enemy_width, enemy_height, enemy_x, enemy_y, enemy_dx, enemy_dy, + enemy_kill_sound_path) + enemies.append(enemy_obj) + + laser_obj = Laser(laser_img_path, laser_width, laser_height, laser_x, laser_y, laser_dx, laser_dy, + shoot_probability, relaxation_time, laser_beam_sound_path) + lasers.append(laser_obj) + + +# init game +init_game() +init_background_music() +runned_once = False + +# main game loop begins +while running: + # start of frame timing + start_time = time.time() + + # background + window.fill((0, 0, 0)) + window.blit(background_img, (0, 0)) + + # register events + for event in pygame.event.get(): + # Quit Event + if event.type == pygame.QUIT: + running = False + + # Keypress Down Event + if event.type == pygame.KEYDOWN: + # Left Arrow Key down + if event.key == pygame.K_LEFT: + print("LOG: Left Arrow Key Pressed Down") + LEFT_ARROW_KEY_PRESSED = 1 + # Right Arrow Key down + if event.key == pygame.K_RIGHT: + print("LOG: Right Arrow Key Pressed Down") + RIGHT_ARROW_KEY_PRESSED = 1 + # Up Arrow Key down + if event.key == pygame.K_UP: + print("LOG: Up Arrow Key Pressed Down") + UP_ARROW_KEY_PRESSED = 1 + # Space Bar down + if event.key == pygame.K_SPACE: + print("LOG: Space Bar Pressed Down") + SPACE_BAR_PRESSED = 1 + # Enter Key down ("Carriage RETURN key" from old typewriter lingo) + if event.key == pygame.K_RETURN: + print("LOG: Enter Key Pressed Down") + ENTER_KEY_PRESSED = 1 + pause_state += 1 + # Esc Key down + if event.key == pygame.K_ESCAPE: + print("LOG: Escape Key Pressed Down") + ESC_KEY_PRESSED = 1 + pause_state += 1 + + # Keypress Up Event + if event.type == pygame.KEYUP: + # Right Arrow Key up + if event.key == pygame.K_RIGHT: + print("LOG: Right Arrow Key Released") + RIGHT_ARROW_KEY_PRESSED = 0 + # Left Arrow Key up + if event.key == pygame.K_LEFT: + print("LOG: Left Arrow Key Released") + LEFT_ARROW_KEY_PRESSED = 0 + # Up Arrow Key up + if event.key == pygame.K_UP: + print("LOG: Up Arrow Key Released") + UP_ARROW_KEY_PRESSED = 0 + # Space Bar up + if event.key == pygame.K_SPACE: + print("LOG: Space Bar Released") + SPACE_BAR_PRESSED = 0 + # Enter Key up ("Carriage RETURN key" from old typewriter lingo) + if event.key == pygame.K_RETURN: + print("LOG: Enter Key Released") + ENTER_KEY_PRESSED = 0 + # Esc Key up + if event.key == pygame.K_ESCAPE: + print("LOG: Escape Key Released") + ESC_KEY_PRESSED = 0 + + # check for pause game event + if pause_state == 2: + pause_state = 0 + runned_once = False + mixer.music.unpause() + if pause_state == 1: + if not runned_once: + runned_once = True + pause_game() + continue + # manipulate game objects based on events and player actions + # player spaceship movement + if RIGHT_ARROW_KEY_PRESSED: + player.x += player.dx + if LEFT_ARROW_KEY_PRESSED: + player.x -= player.dx + # bullet firing + if (SPACE_BAR_PRESSED or UP_ARROW_KEY_PRESSED) and not bullet.fired: + bullet.fired = True + bullet.fire_sound.play() + bullet.x = player.x + player.width / 2 - bullet.width / 2 + bullet.y = player.y + bullet.height / 2 + # bullet movement + if bullet.fired: + bullet.y -= bullet.dy + + # iter through every enemies and lasers + for i in range(len(enemies)): + # laser beaming + if not lasers[i].beamed: + lasers[i].shoot_timer += 1 + if lasers[i].shoot_timer == lasers[i].relaxation_time: + lasers[i].shoot_timer = 0 + random_chance = random.randint(0, 100) + if random_chance <= (lasers[i].shoot_probability * 100): + lasers[i].beamed = True + lasers[i].beam_sound.play() + lasers[i].x = enemies[i].x + enemies[i].width / 2 - lasers[i].width / 2 + lasers[i].y = enemies[i].y + lasers[i].height / 2 + # enemy movement + enemies[i].x += enemies[i].dx * float(2 ** (difficulty - 1)) + # laser movement + if lasers[i].beamed: + lasers[i].y += lasers[i].dy + + # collision check + for i in range(len(enemies)): + bullet_enemy_collision = collision_check(bullet, enemies[i]) + if bullet_enemy_collision: + kill_enemy(player, bullet, enemies[i]) + + for i in range(len(lasers)): + laser_player_collision = collision_check(lasers[i], player) + if laser_player_collision: + kill_player(player, enemies[i], lasers[i]) + + for i in range(len(enemies)): + enemy_player_collision = collision_check(enemies[i], player) + if enemy_player_collision: + kill_enemy(player, bullet, enemies[i]) + kill_player(player, enemies[i], lasers[i]) + + for i in range(len(lasers)): + bullet_laser_collision = collision_check(bullet, lasers[i]) + if bullet_laser_collision: + destroy_weapons(player, bullet, enemies[i], lasers[i]) + + # boundary check: 0 <= x <= WIDTH, 0 <= y <= HEIGHT + # player spaceship + if player.x < 0: + player.x = 0 + if player.x > WIDTH - player.width: + player.x = WIDTH - player.width + # enemy + for enemy in enemies: + if enemy.x <= 0: + enemy.dx = abs(enemy.dx) * 1 + enemy.y += enemy.dy + if enemy.x >= WIDTH - enemy.width: + enemy.dx = abs(enemy.dx) * -1 + enemy.y += enemy.dy + # bullet + if bullet.y < 0: + bullet.fired = False + bullet.x = player.x + player.width / 2 - bullet.width / 2 + bullet.y = player.y + bullet.height / 2 + # laser + for i in range(len(lasers)): + if lasers[i].y > HEIGHT: + lasers[i].beamed = False + lasers[i].x = enemies[i].x + enemies[i].width / 2 - lasers[i].width / 2 + lasers[i].y = enemies[i].y + lasers[i].height / 2 + + # create frame by placing objects on the surface + scoreboard() + for laser in lasers: + laser.draw() + for enemy in enemies: + enemy.draw() + bullet.draw() + player.draw() + + # render the display + pygame.display.update() + + # end of rendering, end on a frame + frame_count += 1 + end_time = time.time() + single_frame_rendering_time = end_time - start_time + # fps = 1 / render_time + + total_time = total_time + single_frame_rendering_time + if total_time >= 1.0: + fps = frame_count + frame_count = 0 + total_time = 0 + # print("rendering time:", single_frame_rendering_time) + # print("FPS:", fps) From 508212351215477200e394213975337f8df4fa49 Mon Sep 17 00:00:00 2001 From: superunluck Date: Sat, 2 May 2026 15:11:22 +0700 Subject: [PATCH 2/7] modified: Space Invaders/main.py --- Space Invaders/main.py | 286 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 285 insertions(+), 1 deletion(-) diff --git a/Space Invaders/main.py b/Space Invaders/main.py index 8708550..b939656 100644 --- a/Space Invaders/main.py +++ b/Space Invaders/main.py @@ -238,4 +238,288 @@ def rebirth(player_obj): def gameover_screen(): scoreboard() - font= pygame.font.SysFont \ No newline at end of file + font= pygame.font.SysFont("freesansbold", 64) + gameover_sprint = font.render("GAME OVER", True, (255, 255, 255)) + window.blit(gameover_sprint, (WIDTH / 2 - 140, HEIGHT / 2 - 32)) + pygame.display.update() + + mixer.music.stop() + game_over_sound.play() + time.sleep(13.0) + mixer.quit() + + +def gameover(): + global running + global score + global highest_score + + if score > highest_score: + highest_score = score + + if score > highest_score: + highest_score = score + + print("----------------") + print("GAME OVER ! !") + print("----------------") + print("you died at") + print("Level:", level) + print("difficulty:", difficulty) + print("Your Score:", score) + print("----------------") + print("Try Again ! !") + print("----------------") + running = False + gameover_screen() + + +def kill_player(player_obj, enemy_obj, laser_obj): + global life + laser_obj.beamed = False + player_obj.kill_sound.play() + laser_obj.x = enemy_obj.x + enemy_obj.width / 2 - laser_obj.width / 2 + laser_obj.y = enemy_obj.y + laser_obj.height / 2 + life -= 1 + print("Life Left:", life) + if life > 0: + rebirth(player_obj) + else: + gameover() + + +def destroy_weapons(player_obj, bullet_obj, enemy_obj, laser_obj): + bullet_obj.fired = False + laser_obj.beamed = False + weapon_annihilation_sound.play() + bullet_obj.x = player_obj.x + player_obj.width / 2 - bullet_obj.width / 2 + bullet_obj.y = player_obj.y + bullet_obj.height / 2 + laser_obj.x = enemy_obj.x + enemy_obj.width / 2 - laser_obj.width / 2 + laser_obj.y = enemy_obj.y + laser_obj.height / 2 + + +def pause_game(): + pause_sound.play() + scoreboard() + font = pygame.font.SysFont("freesansbold", 64) + gameover_sprint = font.render("PAUSED", True, (255, 255, 255)) + window.blit(gameover_sprint, (WIDTH / 2 - 80, HEIGHT / 2 - 32)) + pygame.display.update() + mixer.music.pause() + + +def init_game(): + global pause_sound + global level_up_sound + global game_over_sound + global weapon_annihilation_sound + + pause_sound = mixer.Sound("res/sounds/pause.wav") + level_up_sound = mixer.Sound("res/sounds/1up.wav") + game_over_sound = mixer.Sound("res/sounds/gameover.wav") + weapon_annihilation_sound = mixer.Sound("res/sounds/annihilation.wav") + + player_img_path = "res/images/spaceship.png" + player_width = 64 + player_height = 64 + player_x = (WIDTH / 2) - (player_width / 2) + player_y = (HEIGHT / 10) * 9 - (player_height / 2) + player_dx = initial_player_velocity + player_dy = 0 + player_kill_sound_path = "res/sounds/explosion.wav" + + global player + player = Player(player_img_path, player_width, player_height, player_x, + player_kill_sound_path) + + + enemy_img_path = "res/images/enemy.png" + enemy_width = 64 + enemy_height = 64 + enemy_dx = initial_enemy_velocity + enemy_dy = (HEIGHT / 10) / 2 + enemy_kill_sound_path = "res/sounds/enemykill.wav" + + laser_img_path = "res/images/beam.png" + laser_width = 24 + laser_height = 24 + laser_dx = 0 + laser_dy = weapon_shot_velocity + shoot_probability = 0.3 + relaxition_time = 100 + laser_beam_sound_path = "res/sounds/laser.wav" + + global enemies + global lasers + + enemies.clear() + lasers.clear() + + 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))) + laser_x = enemy_x + enemy_width / 2 - laser_width / 2 + laser_y = enemy_y + laser_height / 2 + + enemy_obj = Enemy(enemy_img_path, enemy_width, enemy_height, enemy_x, enemy_y, enemy_dx, enemy_dy, + enemy_kill_sound_path) + enemies.append(enemy_obj) + + laser_obj = Laser(laser_img_path, laser_width, laser_height, laser_x, laser_y, laser_dx, laser_dy, + shoot_probability, relaxition_time, laser_beam_sound_path) + lasers.append(laser_obj) + + +init_game() +init_background_music() +rinned_once = False + +while running: + start_time = time.time() + + window.fill((0, 0, 0)) + window.blit(background_img, (0, 0)) + + for event in pygame.event.get(): + if event.type == pygame.QUIT: + running = False + + if event.type == pygame.KEYDOWN: + if event.key == pygame.K_LEFT: + print("LOG: Left Arrow Key Pressed Down") + LEFT_ARROW_KEY_PRESSED = 1 + if event.key == pygame.K_RIGHT: + print("LOG: Right Arrow Key Pressed Down") + RIGHT_ARROW_KEY_PRESSED = 1 + if event.key == pygame.K_UP: + print("LOG: Up Arrow Key Pressed Down") + UP_ARROW_KEY_PRESSED = 1 + if event.key == pygame.K_SPACE: + print("LOG: Space Bar Pressed Down") + SPACE_BAR_PRESSED = 1 + if event.key == pygame.K_RETURN: + print("LOG: Enter Key Pressed Down") + ENTER_KEY_PRESSED = 1 + pause_state += 1 + if event.key == pygame.K_ESCAPE: + print("LOG: Escape Key Pressed Down") + ESC_KEY_PRESSED = 1 + pause_state += 1 + + if event.type == pygame.KEYUP: + if event.key == pygame.K_RIGHT: + print("LOG: Right Arrow Key Released") + RIGHT_ARROW_KEY_PRESSED = 0 + if event.key == pygame.K_LEFT: + print("LOG: Left Arrow Key Released") + LEFT_ARROW_KEY_PRESSED = 0 + if event.key == pygame.K_UP: + print("LOG: Up Arrow Key Released") + if event.key == pygame.K_SPACE: + print("LOG: Space Bar Released") + SPACE_BAR_PRESSED = 0 + if event.key == pygame.K_RETURN: + print("LOG: Enter Key Released") + ENTER_KEY_PRESSED = 0 + if event.key == pygame.K_ESCAPE: + print("LOG: Escape Key Released") + ESC_KEY_PRESSED = 0 + + if pause_state == 2: + pause_state = 0 + runned_once = False + mixer.music.unpause() + if pause_state == 1: + if not runned_once: + runned_once = True + pause_game() + continue + if RIGHT_ARROW_KEY_PRESSED: + player.x += player.dx + if LEFT_ARROW_KEY_PRESSED: + player.x -= player.dx + if (SPACE_BAR_PRESSED or UP_ARROW_KEY_PRESSED) and not bullet.fired: + bullet.fired = True + bullet.fire_sound.play() + bullet.x = player.x + player.width / 2 - bullet.width / 2 + bullet.y = player.y + bullet.height / 2 + if bullet.fired: + bullet.y -= bullet.dy + + for i in range(len(enemies)): + if not lasers[i].beamed: + lasers[i].shoot_timer += 1 + if lasers[i].shoot_timer == lasers[i].relaxation_time: + lasers[i].shoot_timer = 0 + random_chance = random.randint(0, 100) + if random_chance <= (lasers[i].shoot_probability * 100): + lasers[i].beamed = True + lasers[i].beam_sound.play() + lasers[i].x = enemies[i].x + enemies[i].width / 2 - lasers[i].width / 2 + lasers[i].y = enemies[i].y + lasers[i].height / 2 + enemies[i].x += enemies[i].dx * float(2 ** (difficulty - 1)) + if lasers[i].beamed: + lasers[i].y += lasers[i].dy + + for i in range(len(enemies)): + bullet_enemy_collision = collision_check(bullet, enemies[i]) + if bullet_enemy_collision: + kill_enemy(player, bullet, enemies[i]) + + for i in range(len(lasers)): + laser_player_collision = collision_check(lasers[i], player) + if laser_player_collision: + kill_player(player, enemies[i], lasers[i]) + + for i in range(len(enemies)): + enemy_player_collision = collision_check(enemies[i], player) + if enemy_player_collision: + kill_enemy(player, bullet, enemies[1]) + kill_player(player, enemies[i], lasers[i]) + + for i in range(len(lasers)): + bullet_laser_collision = collision_check(bullet, lasers[i]) + if bullet_laser_collision: + destroy_weapons(player, bullet, enemies[i], lasers[i]) + + if player.x < 0: + player.x = 0 + if player.x > WIDTH - player.width: + player.x = WIDTH - player.width + for enemy in enemies: + if enemy.x <= 0: + enemy.dx = abs(enemy.dx) * 1 + enemy.y += enemy.dy + if enemy.x >= WIDTH - enemy.width: + enemy.dx = abs(enemy.dx) * -1 + enemy.y += enemy.dy + if bullet.y < 0: + bullet.fired = False + bullet.x = player.x + player.width / 2 - bullet.width / 2 + bullet.y = player.y + bullet.height / 2 + for i in range(len(lasers)): + if lasers[i].y > HEIGHT: + lasers[i].beamed = False + lasers[i].x = enemies[i].x + enemies[i].width / 2 - lasers[i].width / 2 + lasers[i].y = enemies[i].y + lasers[i].height / 2 + + scoreboard() + for laser in lasers: + laser.draw() + for enemy in enemies: + enemy.draw() + bullet.draw() + player.draw() + + pygame.display.update() + + frame_count += 1 + end_time = time.time() + single_frame_rendering_time = end_time - start_time + + total_time = total_time + single_frame_rendering_time + if total_time >= 1.0: + fps = frame_count + frame_count = 0 + total_time = 0 + \ No newline at end of file From c98a6549af47351b2035ce9cb3fa1d87198b3699 Mon Sep 17 00:00:00 2001 From: superunluck Date: Sat, 2 May 2026 15:48:40 +0700 Subject: [PATCH 3/7] new file: Space Invaders/alien.png new file: Space Invaders/background.jpg new file: Space Invaders/beam.png new file: Space Invaders/bullet.png new file: Space Invaders/enemy.png modified: Space Invaders/main.py new file: Space Invaders/rocket.png new file: Space Invaders/spaceship.png --- Space Invaders/alien.png | Bin 0 -> 1422 bytes Space Invaders/background.jpg | Bin 0 -> 221572 bytes Space Invaders/beam.png | Bin 0 -> 939 bytes Space Invaders/bullet.png | Bin 0 -> 721 bytes Space Invaders/enemy.png | Bin 0 -> 1597 bytes Space Invaders/main.py | 1 - Space Invaders/rocket.png | Bin 0 -> 1566 bytes Space Invaders/spaceship.png | Bin 0 -> 2846 bytes 8 files changed, 1 deletion(-) create mode 100644 Space Invaders/alien.png create mode 100644 Space Invaders/background.jpg create mode 100644 Space Invaders/beam.png create mode 100644 Space Invaders/bullet.png create mode 100644 Space Invaders/enemy.png create mode 100644 Space Invaders/rocket.png create mode 100644 Space Invaders/spaceship.png diff --git a/Space Invaders/alien.png b/Space Invaders/alien.png new file mode 100644 index 0000000000000000000000000000000000000000..9fe4ce4d739fe37bc6cfa4b5ec95e58aa5ae1146 GIT binary patch literal 1422 zcmX9;2~bm46b&FkSw>tUHbk=h|C5j%!WJT7NhFbkge4LhG6o?)AWGCAf+DMo3yLCE z5v&zdpioz!Dz%`t4vwR?9Y;i^0g3{O3dVvK0)46H-*@kQ_no`UoB#hlMNE{t3&sV7 zLb*%C!Z={@w&m;qwD9cyyTCYXi;yHZJ3Bugk`IFIS4MHtHed&A%gz|z-~^nnO(K;k zJ}2Fjm$Frd%FD}R>NjU^OHDEAm^oWB>fZ4&D3pD^LYg32SXcmj06#xJ2!b#e4Aaw- zhNgLYdtnCP69Lv3=s%00wH7=Y(ZJz*m6M`1Y+D2oxrj!t!B72C$=ozzm=is869&AV8xaj5WT2YSEX;{gvUt z+9;3}oFaxn3kuBBMTca^@C|ZXcZd|Aid?f<0gghq#6|2%BH;TieA~aPjP;U|>8w9}7 zNy1X2!gS&=og}QN3hi2bvA9YnKCBZT(Mf7D)*Z`ScU&KR zA}hK!OPX6Htux5-s%778j%hH;&u&pPn-ndk*p}Sb*4)^(?eUlMz!E-^N64nu?q8jlV(T z-*`aOSSh+tBknjEee;a$&iR--P4Zuxt0nAyjXXG1 z<=(_^3K2Lsc!eowhNVD#5ChidA63m+ca9d9{bwdZLUDK zmNE`{$?JK}rjgxi7Pq-f=Zt6T>lW3RPd_Z9lQRu8$5@n8SfIEc;~Fsn&$)W;*yuBv ztQce2RgX^f4s`dT+q9BGje`f>j%L)f3;G<=j_$rY|B^GTbyT+&tYn>1-bA;B@zX!g zyA^6tFMmurjd#r*sXTe;uV=L$v{h-#pIp56ce-NlfM5Xi>VP%-2Cpw{pr=R6E-Y%Z zFH0Ys_YhsPhoXGhl!}QZkJEk^KYvfI(vaEKU39MMr=X zRcBvvsiVucWc)chqiA0%_q@Hnui6@1@qPK=Rl~yEUd5X>rSoSi^~sr~mKm1Cj_i7U zY`=9jke+@4MY_G)dBTrhS=X4R6ec aQ#OKX9He!RJB|u%ze0&9MtC7YTlycTGaj@6 literal 0 HcmV?d00001 diff --git a/Space Invaders/background.jpg b/Space Invaders/background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..374d6f1936ae45e8b134ec449189addb2ec0103d GIT binary patch literal 221572 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�FK@3J-*BtW{1uZw9nM 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 z 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 F0swP0XdnOp literal 0 HcmV?d00001 diff --git a/Space Invaders/bullet.png b/Space Invaders/bullet.png new file mode 100644 index 0000000000000000000000000000000000000000..01ea9545cf956b6b673ab2133634373bd33ccac8 GIT binary patch literal 721 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%0D#E=`lS>Ny(^{!#tRs4nQ^TEZ3N&) z$0|x`I+NZ|bzHk`H%xqXPTP8q~*ae^;06^$trd{KKN+mdqK)0B?JbpNJPR)2{K{{@gmtDWma!0hpEK=s1;J&>wOd9#odC*|1ypwc00@%8t9fZ_*O%GG^gR)8V~A#Exuy4hhb6P+9pHO8 zumprP02;t}z`yxKQ?@Wh%yT=^b>2#ng%P4Bv#sWPEWU(6YXEK_q6hp>#4VY#djupn zTOcrgl69T4iWxr`bKSGbz-*a-;LZN`06Yrd02pfntrgp|iOnt3FCbuHHg!geV)8s* zT$R;b7hL0bkHL=ubby)H2G%&XTgDhGoE;g>^}hk(Var14#(-h5TmQShyQ^^mv67V2 zS>X7OA6Xuo?9cwO85TPo=v;Q^f{A2GRnG2!4}+2ElIeexh+*>HH!*q78z?^XPmoO6 zpH$od@v<@m7hR7dx2;CPU4#NnT;Ehv@MbPJGbVsX^{{-ormD=JPgOFerTaVcy{kVyl4`lrR5m7Xg&g$FGaLuN>W=+UA%sEbwRV; z*gU(c-hgb-D6yaR^;$ApCctQ^Zv${2&O9m-pf+vG;fL%%>@NSWlo!bMDvBKh}g8D$iSWYmLnUiAP)9$QAo!60Jt&% z+erWbcpRu*T;=JsDwDX(w~Cn5%=-dLX5}Er&6OS^UaRsE(8jIRZYz)>BYGulbUqtN z$v?I7^V~`gNlMSWP|d7NfI&sA7`ze&lWG74a&)!Ze(D*^l|ou9#1q{`tr%-(O04m;j8C}a(;?q^iiwHx~ETvorg9q6O(0rAzZ09RDf5XEgogXbJQT^JBxcIqWsbex1Z~KDFmA+ZCoD5uL$;@cv zxiB%CAAv}GHqM-@S*Zvo1}{-LPM5{!0Pv*R_0Rxn+Sg@h7N~yXCFSG50ECR*qO9cn z@;k`PT#R_7iP@9@gK%+1N&p6F%5oaZc`AF!M{ldIe5#~G-78P4V@kP1X$RY6HkUIc zfCv}aX^e=K<(M#AW%qO)vC}L7p!oAcO1orIwoQ_3GMoEmNM$_pnrLK7?R5OPB&qH;W*xy;gB_T$NHTl2G3!l4iP83*&+opPVi7L+ z>;M&ZAA{@50QA9=h?ja1_EjTPRfkhG^~}0{HQq=bDohDr-B}v0s&|E}>aAE@Pz*Yr zzGxjlmW!nE%Gn*B4`BCbn*=$f!%e+2=c9L~asmPX5|m*UU}gf~waGF$)gTg>ZnN%~ z6_YTX^e{-XQ&%!f<&qNcNe~_YPMa)~+L@CYWQb`t>yBMSmyQ0}&g{gQ3ujAjc5>2% zOL_!CakzBl@` z(aF)jlM*m6fSe`Zs~K}}`r^z-1o856bT+NX6$U10NS}bl^AQD*w91-D9bNS}!c{ZU z`VEfa@tw1?Q^(0Ui|~(U z-bbjSE?40}1k(njX#ue(5Zwo;-{>YYwX#9#lCl_dEZWD(7ZFWEqc$ zxTnUwIn{1TzzQORfE|`JjO}C*aDm_X+(adT0JsEgSW@d=nYIj()CiW}1L{D}3L?`| zU-|0CjEx{HOV=2KUb6}YoJqn5!APf&xDf>HLzayviA~!~wTc{RBw|xY`;3SUl6Y}R zt^2V|@q`dtA&s=3<2VGppt36ms}GqSG8j7spwjH+J|SIGQ&&`(R2vxl9Rv5I+T~!s zxv;~rue+}1GP5JS_6OP59S)yhMV|!0aMrqunuttGedRzkk0=h%BPt)0cqrS>57)H) zsXdXF^=J8)_$cTU*rf8ggtkG|dB9?%p6_!!%Y-K}@*FdR)-UimpUD;u06^4jyC~2x zmJm%f?pvJ#{~py292!1otZ}VMS10ZE&+vP}>b>2O=UC8e2^{!th4a&~fSnQVu)91+ zu=x7`k39*%+)1HD;}p9!-#mFwK%dupT7Yi=F!CQ?B8F32)>BtEVSk;otGp)w w0FL`hjxx(u038rof?V! Date: Sat, 2 May 2026 15:54:21 +0700 Subject: [PATCH 4/7] modified: Space Invaders/maintoretype.py --- Space Invaders/maintoretype.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Space Invaders/maintoretype.py b/Space Invaders/maintoretype.py index d0a9c3c..368977e 100644 --- a/Space Invaders/maintoretype.py +++ b/Space Invaders/maintoretype.py @@ -431,7 +431,7 @@ 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(((HEIGHT // 10) * 1 - (enemy_height / 2)), ((HEIGHT / 10) * 4 - (enemy_height / 2))) laser_x = enemy_x + enemy_width / 2 - laser_width / 2 laser_y = enemy_y + laser_height / 2 From f96f6b9a0cbd05daaebd85cf0fc4293b3890d29b Mon Sep 17 00:00:00 2001 From: superunluck Date: Sat, 9 May 2026 13:58:27 +0700 Subject: [PATCH 5/7] modified: Space Invaders/main.py --- Space Invaders/main.py | 41 ++++++++++++++++++++++------------ Space Invaders/maintoretype.py | 30 ++++++++++++------------- 2 files changed, 42 insertions(+), 29 deletions(-) diff --git a/Space Invaders/main.py b/Space Invaders/main.py index 5cfdd3c..fa31563 100644 --- a/Space Invaders/main.py +++ b/Space Invaders/main.py @@ -42,7 +42,7 @@ window = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("Space Invaders") -window_icon = pygame.image.load("res/images/alien.png") +window_icon = pygame.image.load("Space Invaders/res/images/alien.png") pygame.display.set_icon(window_icon) pause_sound = None @@ -50,7 +50,7 @@ weapon_annihilation_sound = None game_over_sound = None -background_img = pygame.image.load("res/images/background.jpg") +background_img = pygame.image.load("Space Invaders/res/images/background.jpg") background_music_paths = ["res/sounds/Space_Invaders_Music.ogg", "res/sounds/Space_Invaders_Music_x2.ogg", "res/sounds/Space_Invaders_Music_x4.ogg", @@ -314,40 +314,53 @@ def init_game(): global game_over_sound global weapon_annihilation_sound - pause_sound = mixer.Sound("res/sounds/pause.wav") - level_up_sound = mixer.Sound("res/sounds/1up.wav") - game_over_sound = mixer.Sound("res/sounds/gameover.wav") - weapon_annihilation_sound = mixer.Sound("res/sounds/annihilation.wav") + pause_sound = mixer.Sound("Space Invaders/res/sounds/pause.wav") + level_up_sound = mixer.Sound("Space Invaders/res/sounds/1up.wav") + game_over_sound = mixer.Sound("Space Invaders/res/sounds/gameover.wav") + weapon_annihilation_sound = mixer.Sound("Space Invaders/res/sounds/annihilation.wav") - player_img_path = "res/images/spaceship.png" + player_img_path = "Space Invaders/res/images/spaceship.png" player_width = 64 player_height = 64 player_x = (WIDTH / 2) - (player_width / 2) player_y = (HEIGHT / 10) * 9 - (player_height / 2) player_dx = initial_player_velocity player_dy = 0 - player_kill_sound_path = "res/sounds/explosion.wav" + player_kill_sound_path = "Space Invaders/res/sounds/explosion.wav" global player - player = Player(player_img_path, player_width, player_height, player_x, + player = Player(player_img_path, player_width, player_height, player_x, player_y, player_dx, player_dy, player_kill_sound_path) + bullet_img_path = "Space Invaders/res/images/bullet.png" + bullet_width = 32 + bullet_height = 32 + bullet_x = player_x + player_width / 2 - bullet_width / 2 + bullet_y = player_y + bullet_height / 2 + bullet_dx = 0 + bullet_dy = weapon_shot_velocity + bullet_fire_sound_path = "Space Invaders/res/sounds/gunshot.wav" + + global bullet + bullet = Bullet(bullet_img_path, bullet_width, bullet_height, bullet_x, bullet_y, bullet_dx, bullet_dy, + bullet_fire_sound_path) + - enemy_img_path = "res/images/enemy.png" + enemy_img_path = "Space Invaders/res/images/enemy.png" enemy_width = 64 enemy_height = 64 enemy_dx = initial_enemy_velocity enemy_dy = (HEIGHT / 10) / 2 - enemy_kill_sound_path = "res/sounds/enemykill.wav" + enemy_kill_sound_path = "Space Invaders/res/sounds/enemykill.wav" - laser_img_path = "res/images/beam.png" + laser_img_path = "Space Invaders/res/images/beam.png" laser_width = 24 laser_height = 24 laser_dx = 0 laser_dy = weapon_shot_velocity shoot_probability = 0.3 relaxition_time = 100 - laser_beam_sound_path = "res/sounds/laser.wav" + laser_beam_sound_path = "Space Invaders/res/sounds/laser.wav" global enemies global lasers @@ -357,7 +370,7 @@ 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(((HEIGHT // 10) * 1 - (enemy_height // 2)), ((HEIGHT // 10) * 4 - (enemy_height // 2))) laser_x = enemy_x + enemy_width / 2 - laser_width / 2 laser_y = enemy_y + laser_height / 2 diff --git a/Space Invaders/maintoretype.py b/Space Invaders/maintoretype.py index 368977e..a33fff8 100644 --- a/Space Invaders/maintoretype.py +++ b/Space Invaders/maintoretype.py @@ -54,7 +54,7 @@ # create display window window = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("Space Invaders") -window_icon = pygame.image.load("res/images/alien.png") +window_icon = pygame.image.load("Space Invaders/res/images/alien.png") pygame.display.set_icon(window_icon) # game sounds @@ -64,7 +64,7 @@ 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("Space Invaders/res/images/background.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", @@ -372,56 +372,56 @@ def init_game(): global game_over_sound global weapon_annihilation_sound - pause_sound = mixer.Sound("res/sounds/pause.wav") - level_up_sound = mixer.Sound("res/sounds/1up.wav") - game_over_sound = mixer.Sound("res/sounds/gameover.wav") - weapon_annihilation_sound = mixer.Sound("res/sounds/annihilation.wav") + pause_sound = mixer.Sound("Space Invaders/res/sounds/pause.wav") + level_up_sound = mixer.Sound("Space Invaders/res/sounds/1up.wav") + game_over_sound = mixer.Sound("Space Invaders/res/sounds/gameover.wav") + weapon_annihilation_sound = mixer.Sound("Space Invaders/res/sounds/annihilation.wav") # player - player_img_path = "res/images/spaceship.png" # 64 x 64 px image + player_img_path = "Space Invaders/res/images/spaceship.png" # 64 x 64 px image player_width = 64 player_height = 64 player_x = (WIDTH / 2) - (player_width / 2) player_y = (HEIGHT / 10) * 9 - (player_height / 2) player_dx = initial_player_velocity player_dy = 0 - player_kill_sound_path = "res/sounds/explosion.wav" + player_kill_sound_path = "Space Invaders/res/sounds/explosion.wav" global player player = Player(player_img_path, player_width, player_height, player_x, player_y, player_dx, player_dy, player_kill_sound_path) # bullet - bullet_img_path = "res/images/bullet.png" # 32 x 32 px image + bullet_img_path = "Space Invaders/res/images/bullet.png" # 32 x 32 px image bullet_width = 32 bullet_height = 32 bullet_x = player_x + player_width / 2 - bullet_width / 2 bullet_y = player_y + bullet_height / 2 bullet_dx = 0 bullet_dy = weapon_shot_velocity - bullet_fire_sound_path = "res/sounds/gunshot.wav" + bullet_fire_sound_path = "Space Invaders/res/sounds/gunshot.wav" global bullet bullet = Bullet(bullet_img_path, bullet_width, bullet_height, bullet_x, bullet_y, bullet_dx, bullet_dy, bullet_fire_sound_path) # enemy (number of enemy = level number) - enemy_img_path = "res/images/enemy.png" # 64 x 64 px image + enemy_img_path = "Space Invaders/res/images/enemy.png" # 64 x 64 px image enemy_width = 64 enemy_height = 64 enemy_dx = initial_enemy_velocity enemy_dy = (HEIGHT / 10) / 2 - enemy_kill_sound_path = "res/sounds/enemykill.wav" + enemy_kill_sound_path = "Space Invaders/res/sounds/enemykill.wav" # laser beam (equals number of enemies and retains corresponding enemy position) - laser_img_path = "res/images/beam.png" # 24 x 24 px image + laser_img_path = "Space Invaders/res/images/beam.png" # 24 x 24 px image laser_width = 24 laser_height = 24 laser_dx = 0 laser_dy = weapon_shot_velocity shoot_probability = 0.3 relaxation_time = 100 - laser_beam_sound_path = "res/sounds/laser.wav" + laser_beam_sound_path = "Space Invaders/res/sounds/laser.wav" global enemies global lasers @@ -431,7 +431,7 @@ 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(((HEIGHT // 10) * 1 - (enemy_height // 2)), ((HEIGHT // 10) * 4 - (enemy_height // 2))) laser_x = enemy_x + enemy_width / 2 - laser_width / 2 laser_y = enemy_y + laser_height / 2 From 3705480b352f31a567d3506446df2d8848df5d9a Mon Sep 17 00:00:00 2001 From: superunluck Date: Sat, 16 May 2026 16:30:16 +0700 Subject: [PATCH 6/7] new file: Space Invaders/jenya.py new file: Space Invaders/simpletryout.py --- Space Invaders/jenya.py | 217 +++++++++++++++++++++ Space Invaders/simpletryout.py | 337 +++++++++++++++++++++++++++++++++ 2 files changed, 554 insertions(+) create mode 100644 Space Invaders/jenya.py create mode 100644 Space Invaders/simpletryout.py diff --git a/Space Invaders/jenya.py b/Space Invaders/jenya.py new file mode 100644 index 0000000..5ae44cf --- /dev/null +++ b/Space Invaders/jenya.py @@ -0,0 +1,217 @@ +import pygame +import sys +import random + + +pygame.init() +res = (720, 720) + +c1 = random.randint(125, 125) +c2 = random.randint(0, 255) +c3 = random.randint(0, 255) + +screen = pygame.display.set_mode(res) +clock = pygame.time.Clock() +red = (255, 0, 0) +green = (0, 255, 0) +blue = (0, 0, 255) +color_list = [red, green, blue] +colox_c1 = 0 +colox_c2 = 0 +colox_c3 = 254 +colox_c4 = 254 + +player_c = random.choice(color_list) + +startl = (169, 169, 169) + + +startd = (100, 100, 100) +white = (255, 255, 255) +start = (255, 255, 255) +width = screen.get_width() +height = screen.get_height() + +lead_x = 40 + +lead_y = height / 2 +x = 300 +y = 290 +width1 = 100 +height1 = 40 +enemy_size = 50 + +smallfont = pygame.font.SysFont('Corbel', 35) + +text = smallfont.render('Start', True, white) +text1 = smallfont.render('Options', True, white) +exit1 = smallfont.render('Exit', True, white) + +colox = smallfont.render('Colox', True, (c3, c2, c1)) +x1 = random.randint(width // 2, width) +y1 = random.randint(100, height // 2) +x2 = 40 +y2 = 40 +speed = 15 + +count = 0 +rgb = random.choice(color_list) + +e_p = [width, random.randint(50, height - 50)] +e1_p = [random.randint(width, width + 100), random.randint(50, height + - 100)] + + +def game_over(): + + while True: + + for ev in pygame.event.get(): + if ev.type == pygame.QUIT: + pygame.quit() + + if ev.type == pygame.MOUSEBUTTONDOWN: + if 100 < mouse1[0] < 140 and height - 100 < mouse1[1] \ + < height - 80: + pygame.quit() + + if ev.type == pygame.MOUSEBUTTONDOWN: + if width - 180 < mouse1[0] < width - 100 and height \ + - 100 < mouse1[1] < height - 80: + + game(lead_x, lead_y, speed, count) + + screen.fill((65, 25, 64)) + smallfont = pygame.font.SysFont('Corbel', 60) + smallfont1 = pygame.font.SysFont('Corbel', 25) + game_over = smallfont.render('GAME OVER', True, white) + game_exit = smallfont1.render('exit', True, white) + restart = smallfont1.render('restart', True, white) + mouse1 = pygame.mouse.get_pos() + + if 100 < mouse1[0] < 140 and height - 100 < mouse1[1] < height - 80: + pygame.draw.rect(screen, startl, [100, height - 100, 40,20]) + else: + pygame.draw.rect(screen, startd, [100, height - 100, 40,20]) + + if width - 180 < mouse1[0] < width - 100 and height - 100 < mouse1[1] < height - 80: + pygame.draw.rect(screen, startl, [width - 180, height- 100, 80, 20]) + else: + pygame.draw.rect(screen, startd, [width - 180, height- 100, 80, 20]) + + screen.blit(game_exit, (100, height - 100)) + + screen.blit(restart, (width - 180, height - 100)) + screen.blit(game_over, (width / 2 - 150, 295)) + + pygame.display.update() + + +pygame.draw.rect(screen, startd, [100, height - 100, 40, 20]) +pygame.draw.rect(screen, startd, [width - 180, height - 100, 40, 50]) + + + +def game( + lead_y, + lead_x, + speed, + count, + ): + + while True: + for ev in pygame.event.get(): + if ev.type == pygame.QUIT: + pygame.quit() + + + keys = pygame.key.get_pressed() + if keys(pygame.K_UP): + + lead_y -= 10 + if keys[pygame.K_DOWN]: + + lead_y += 10 + screen.fill((65, 25, 64)) + clock.tick(speed) + + rect = pygame.draw.rect(screen, player_c, [lead_x, lead_y, 40,40]) + pygame.draw.rect(screen, (c1, c2, c3), [0, 0, width, 40]) + pygame.draw.rect(screen, (c3, c2, c1), [0, 680, width, 40]) + pygame.draw.rect(screen, startd, [width - 100, 0, 100, 40]) + smallfont = pygame.font.SysFont('Corbel', 35) + exit2 = smallfont.render('Exit', True, white) + + mouse = pygame.mouse.get_pos() + if width - 100 < mouse[0] < width and 0 < mouse[1] < 40: + pygame.draw.rect(screen, startl, [width - 100, 0, 100, 40]) + else: + pygame.draw.rect(screen, startd, [width - 100, 0, 100, 40]) + if width - 100 < mouse[0] < width and 0 < mouse[1] < 40: + if ev_type == pygame.MOUSEBUTTONDOWN: + pygame.quit() + + if e_p[0] > 0 and e_p[0] <= width: + + e_p[0] -= 10 + else: + if e_p[1] <= 40 or e_p[1] >= height - 40: + e_p[1] = height / 2 + if e1_p[1] <= 40 or e1_p[1] >= height - 40: + e1_p[1] = random.randint(40, height - 40) + e1_p[1] = random.randint(enemy_size, height - 40) + e1_p[0] = width + 100 + + if lead_x <= e1_p[0] <= lead_x + 40 and lead_y >= e1_p[1] >= lead_y - 40: + e1_p[0] = width + 100 + e1_p[1] = random.randint(40, height - 40) + count += 1 + speed += 1 + if lead_y <= e1_p[1] + enemy_size <= lead_y + 40 and lead_x <= e1_p[0] <= lead_x + 40: + e1_p[0] = width + 100 + e1_p[1] = random.randint(40, height - 40) + + count += 1 + + speed += 1 + + if count >= 45: + + speed = 60 + + if lead_y <= 38 or lead_y >= height - 38: + game_over() + if e1_p[0] <= 0: + game_over() + + pygame.draw.rect(screen, blue, [e1_p[0], e1_p[1], enemy_size, + enemy_size]) + score1 = smallfont.render('Score:', True, white) + screen.blit(score1, (width - 120, height - 40)) + screen.blit(exit2, (width - 80, 0)) + pygame.display.update() + + +def intro( + colox_c1, + colox_c2, + colox, + exit1, + text1, + text, + ): + intro = True + while intro: + for event in pygame.event.get(): + if event.type == pygame.QUIT: + pygame.quit() + screen.fill((65, 25, 64)) + mouse = pygame.mouse.get_pos() + + if x < mouse[0] < x + width1 and y < mouse[1] < y + height1: + + pygame.draw.rect(screen, startl, [x, y, width1, height1]) + else: + if x < mouse[0] < x + width1 + 40 and y + 70 < mouse[1] < y \ + + 70 + height1: + pygame.draw.rect(screen, startl, [x, y + 70, width1+40, height]) \ No newline at end of file diff --git a/Space Invaders/simpletryout.py b/Space Invaders/simpletryout.py new file mode 100644 index 0000000..d877882 --- /dev/null +++ b/Space Invaders/simpletryout.py @@ -0,0 +1,337 @@ +# Базовая игра, которую написал сам: 8-бит, классика, два блока +# Одним мы управляем, два других - враг и союзник. +# Уворачиваемся от одного и собираем другого, увеличиваем очки. +# Обрати внимание на рандомные переменные и какие именно числа я использую + + +import pygame +import sys +import random + + +# инициализация конструктора +pygame.init() +res = (720, 720) + +# рандомно назначаем значения переменных +# начиная с нижнего и до самого верхнего значения +c1 = random.randint(125, 255) +c2 = random.randint(0, 255) +c3 = random.randint(0, 255) + +screen = pygame.display.set_mode(res) +clock = pygame.time.Clock() +red = (255, 0, 0) +green = (0, 255, 0) +blue = (0, 0, 255) +color_list = [red, green, blue] +colox_c1 = 0 +colox_c2 = 0 +colox_c3 = 254 +colox_c4 = 254 + +# рандомно назначаем игроку цвет из списка color_list +player_c = random.choice(color_list) + +# слегка оттеняем кнопки +startl = (169, 169, 169) + +# затемняем кнопки в стартовом меню +startd = (100, 100, 100) +white = (255, 255, 255) +start = (255, 255, 255) +width = screen.get_width() +height = screen.get_height() + +# начальная Х позиция игрока +lead_x = 40 + +# начальная У позиция игрока +lead_y = height / 2 +x = 300 +y = 290 +width1 = 100 +height1 = 40 +enemy_size = 50 + +# определяем шрифт для игры +smallfont = pygame.font.SysFont('Corbel', 35) + +# какие текста будут существовать и рендериться на экране +text = smallfont.render('Start', True, white) +text1 = smallfont.render('Options', True, white) +exit1 = smallfont.render('Exit', True, white) + +# название игры +colox = smallfont.render('Colox', True, (c3, c2, c1)) +x1 = random.randint(width // 2, width) +y1 = random.randint(100, height // 2) +x2 = 40 +y2 = 40 +speed = 15 + +# очки игрока +count = 0 +rgb = random.choice(color_list) + +# позиция противника +e_p = [width, random.randint(50, height - 50)] +e1_p = [random.randint(width, width + 100), random.randint(50, height + - 100)] + + +# функция для геймовера +def game_over(): + + while True: + + # проверка на случай если игрок нажмет кнопку cross + for ev in pygame.event.get(): + if ev.type == pygame.QUIT: + pygame.quit() + + if ev.type == pygame.MOUSEBUTTONDOWN: + if 100 < mouse1[0] < 140 and height - 100 < mouse1[1] \ + < height - 80: + pygame.quit() + + if ev.type == pygame.MOUSEBUTTONDOWN: + if width - 180 < mouse1[0] < width - 100 and height \ + - 100 < mouse1[1] < height - 80: + + # зовём игровую функцию + game(lead_x, lead_y, speed, count) + + # заполняем экран определённым цветом + screen.fill((65, 25, 64)) + smallfont = pygame.font.SysFont('Corbel', 60) + smallfont1 = pygame.font.SysFont('Corbel', 25) + game_over = smallfont.render('GAME OVER', True, white) + game_exit = smallfont1.render('exit', True, white) + restart = smallfont1.render('restart', True, white) + mouse1 = pygame.mouse.get_pos() + + # выход + if 100 < mouse1[0] < 140 and height - 100 < mouse1[1] < height - 80: + pygame.draw.rect(screen, startl, [100, height - 100, 40,20]) + else: + pygame.draw.rect(screen, startd, [100, height - 100, 40,20]) + + # рестарт + if width - 180 < mouse1[0] < width - 100 and height - 100 < mouse1[1] < height - 80: + pygame.draw.rect(screen, startl, [width - 180, height- 100, 80, 20]) + else: + pygame.draw.rect(screen, startd, [width - 180, height- 100, 80, 20]) + + screen.blit(game_exit, (100, height - 100)) + + # расположение объектов + screen.blit(restart, (width - 180, height - 100)) + screen.blit(game_over, (width / 2 - 150, 295)) + + # обновление экрана + pygame.display.update() + + +pygame.draw.rect(screen, startd, [100, height - 100, 40, 20]) +pygame.draw.rect(screen, startd, [width - 180, height - 100, 40, 50]) + + + +# игровая функция или тело +def game( + lead_y, + lead_X, + speed, + count, + ): + + while True: + for ev in pygame.event.get(): + if ev.type == pygame.QUIT: + pygame.quit() + + + # управление + # слкедит за нажатыми клавишами + keys = pygame.key.get_pressed() + if keys[pygame.K_UP]: + + # если стрелочка вверх нажата то + # у будет уменьшаться на -10 + lead_y -= 10 + if keys[pygame.K_DOWN]: + + # если стрелка вниз будет нажата + # то позиция у будет увеличиваться на 10 + lead_y += 10 + screen.fill((65, 25, 64)) + clock.tick(speed) + + # отрисовка квадратов + rect = pygame.draw.rect(screen, player_c, [lead_x, lead_y, 40,40]) + pygame.draw.rect(screen, (c1, c2, c3), [0, 0, width, 40]) + pygame.draw.rect(screen, (c3, c2, c1), [0, 680, width, 40]) + pygame.draw.rect(screen, startd, [width - 100, 0, 100, 40]) + smallfont = pygame.font.SysFont('Corbel', 35) + exit2 = smallfont.render('Exit', True, white) + + # выход + # получает позицию мыши, Х и У координаты + # сохраняет их в качестве tuple + mouse = pygame.mouse.get_pos() + if width - 100 < mouse[0] < width and 0 < mouse[1] < 40: + pygame.draw.rect(screen, startl, [width - 100, 0, 100, 40]) + else: + pygame.draw.rect(screen, startd, [width - 100, 0, 100, 40]) + if width - 100 < mouse[0] < width and 0 < mouse[1] < 40: + if ev.type == pygame.MOUSEBUTTONDOWN: + pygame.quit() + + # позиция врага + if e_p[0] > 0 and e_p[0] <= width: + + e_p[0] -= 10 + else: + if e_p[1] <= 40 or e_p[1] >= height - 40: + e_p[1] = height / 2 + if e1_p[1] <= 40 or e1_p[1] >= height - 40: + e1_p[1] = random.randint(40, height - 40) + e_p[1] = random.randint(enemy_size, height - enemy_size) + e_p[0] = width + + + # гей овер + # проверка столкновений + if lead_x <= e_p[0] <= lead_x + 40 and lead_y >= e_p[1] >= lead_y - 40: + game_over() + + # провреяем столкнулся ли игрок с кубом-противником + if lead_y <= e_p[1] + enemy_size <= lead_y + 40 and lead_x <= e_p[0] <= lead_x + 40: + game_over() + + pygame.draw.rect(screen, red, [e_p[0], e_p[1], enemy_size,enemy_size]) + if e1_p[0] > 0 and e1_p[0] <= width + 100: + e1_p[0] -= 10 + else: + if e1_p[1] <= 40 or e1_p[1] >= height - 40: + e1_p[1] = height / 2 + e1_p[1] = random.randint(enemy_size, height - 40) + e1_p[0] = width + 100 + + if lead_x <= e1_p[0] <= lead_x + 40 and lead_y >= e1_p[1] >= lead_y - 40: + e1_p[0] = width + 100 + e1_p[1] = random.randint(40, height - 40) + count += 1 + speed += 1 + if lead_y <= e1_p[1] + enemy_size <= lead_y + 40 and lead_x <= e1_p[0] <= lead_x + 40: + e1_p[0] = width + 100 + e1_p[1] = random.randint(40, height - 40) + + # увеличивает очки если синий куб задет + count += 1 + + # увеличиваем скорость по мере увеличения очков + speed += 1 + + if count >= 45: + + # фиксация на 60 фпс + speed = 60 + + if lead_y <= 38 or lead_y >= height - 38: + game_over() + if e1_p[0] <= 0: + game_over() + + pygame.draw.rect(screen, blue, [e1_p[0], e1_p[1], enemy_size, + enemy_size]) + score1 = smallfont.render('Score:', True, white) + screen.blit(score1, (width - 120, height - 40)) + screen.blit(exit2, (width - 80, 0)) + pygame.display.update() + + +# интро +def intro( + colox_c1, + colox_c2, + colox, + exit1, + text1, + text, + ): + intro = True + while intro: + for event in pygame.event.get(): + if event.type == pygame.QUIT: + pygame.quit() + screen.fill((65, 25, 64)) + mouse = pygame.mouse.get_pos() + + # начальный экран + if x < mouse[0] < x + width1 and y < mouse[1] < y + height1: + + # если мышь над кнопкой + # то цвет тени становится слегка светлее + pygame.draw.rect(screen, startl, [x, y, width1, height1]) + else: + if x < mouse[0] < x + width1 + 40 and y + 70 < mouse[1] < y \ + + 70 + height1: + pygame.draw.rect(screen, startl, [x, y + 70, width1+40,height1]) + else: + + if x < mouse[0] < width1 + x and y + 140 < mouse[1] < y + 140 + height1: + pygame.draw.rect(screen, startl, [x, y + 140,width1,height1]) + else: + pygame.draw.rect(screen, startd, [x, y, width1,height1]) + pygame.draw.rect(screen, startd, [x, y + 70, width1 + + 40, height1]) + pygame.draw.rect(screen, startd, [x, y + 140,width1, height1]) + + # кнопка старт + if event.type == pygame.MOUSEBUTTONDOWN: + if x < mouse[0] < x + width1 and y < mouse[1] < y + height1: + #music() + game(lead_y, lead_x, speed, count) + + if event.type == pygame.MOUSEBUTTONDOWN: + if x < mouse[0] < width1 + x and y + 140 < mouse[1] < y + 140 + height1: + pygame.quit() + + # это для лёгкого градиента в цветах + if 0 <= colox_c1 <= 254 or 0 <= colox_c2 <= 254: + colox_c1 += 1 + colox_c2 += 1 + if colox_c1 >= 254 or colox_c2 >= 254: + colox_c1 = c3 + colox_c2 = c3 + + pygame.draw.rect(screen, (c2, colox_c1, colox_c2), [0, 0, 40, + height]) + pygame.draw.rect(screen, (c2, colox_c1, colox_c2), [width - 40, + 0, 40, height]) + smallfont = pygame.font.SysFont('Corbel', 35) + sig = smallfont.render('Designed by :- Antriksh', True, white) + text = smallfont.render('Start', True, white) + text1 = smallfont.render('Options', True, white) + exit1 = smallfont.render('Exit', True, white) + colox = smallfont.render('Colox', True, (c1, colox_c1, + colox_c2)) + screen.blit(colox, (312, 50)) + screen.blit(text, (312, 295)) + screen.blit(text1, (312, 365)) + screen.blit(exit1, (312, 435)) + screen.blit(sig, (320, height - 50)) + clock.tick(60) + pygame.display.update() + + +intro( + colox_c1, + colox_c2, + colox, + exit1, + text1, + text, + ) \ No newline at end of file From dcb55b4625f1fef1bd22c4ca6b645afda5e9a317 Mon Sep 17 00:00:00 2001 From: superunluck Date: Sat, 30 May 2026 16:11:42 +0700 Subject: [PATCH 7/7] modified: Space Invaders/jenya.py modified: Space Invaders/simpletryout.py --- Space Invaders/jenya.py | 85 +++++++++++++++++++++++++++++++--- Space Invaders/simpletryout.py | 1 + 2 files changed, 79 insertions(+), 7 deletions(-) diff --git a/Space Invaders/jenya.py b/Space Invaders/jenya.py index 5ae44cf..530473f 100644 --- a/Space Invaders/jenya.py +++ b/Space Invaders/jenya.py @@ -114,7 +114,7 @@ def game_over(): def game( lead_y, - lead_x, + lead_X, speed, count, ): @@ -126,7 +126,7 @@ def game( keys = pygame.key.get_pressed() - if keys(pygame.K_UP): + if keys[pygame.K_UP]: lead_y -= 10 if keys[pygame.K_DOWN]: @@ -148,7 +148,7 @@ def game( else: pygame.draw.rect(screen, startd, [width - 100, 0, 100, 40]) if width - 100 < mouse[0] < width and 0 < mouse[1] < 40: - if ev_type == pygame.MOUSEBUTTONDOWN: + if ev.type == pygame.MOUSEBUTTONDOWN: pygame.quit() if e_p[0] > 0 and e_p[0] <= width: @@ -158,16 +158,33 @@ def game( if e_p[1] <= 40 or e_p[1] >= height - 40: e_p[1] = height / 2 if e1_p[1] <= 40 or e1_p[1] >= height - 40: - e1_p[1] = random.randint(40, height - 40) + e1_p[1] = height / 2 + e_p[1] = random.randint(enemy_size, height - enemy_size) + e_p[0] = width + + + if lead_x <= e_p[0] <= lead_x + 40 and lead_y >= e_p[1] >= lead_y - 40: + game_over() + + if lead_y <= e_p[1] + enemy_size <= lead_y + 40 and lead_x <= e_p[0] <= lead_x + 40: + game_over() + + pygame.draw.rect(screen, red, [e_p[0], eапмапрааааааак_p[1], enemy_size,enemy_size]) + if e1_p[0] > 0 and e1_p[0] <= width + 100: + e1_p[0] -= 10 + else: + if e1_p[1] <= 40 or e1_p[1] >= height - 40: + e1_p[1] = height / 2 e1_p[1] = random.randint(enemy_size, height - 40) e1_p[0] = width + 100 - + if lead_x <= e1_p[0] <= lead_x + 40 and lead_y >= e1_p[1] >= lead_y - 40: e1_p[0] = width + 100 e1_p[1] = random.randint(40, height - 40) count += 1 speed += 1 if lead_y <= e1_p[1] + enemy_size <= lead_y + 40 and lead_x <= e1_p[0] <= lead_x + 40: + e1_p[0] = width + 100 e1_p[1] = random.randint(40, height - 40) @@ -185,7 +202,7 @@ def game( game_over() pygame.draw.rect(screen, blue, [e1_p[0], e1_p[1], enemy_size, - enemy_size]) + enemy_size]) score1 = smallfont.render('Score:', True, white) screen.blit(score1, (width - 120, height - 40)) screen.blit(exit2, (width - 80, 0)) @@ -214,4 +231,58 @@ def intro( else: if x < mouse[0] < x + width1 + 40 and y + 70 < mouse[1] < y \ + 70 + height1: - pygame.draw.rect(screen, startl, [x, y + 70, width1+40, height]) \ No newline at end of file + pygame.draw.rect(screen, startl, [x, y + 70, width1+40,height]) + else: + + if x < mouse[0] < width1 + x and y + 140 < mouse[1] < y + 140 + height1: + pygame.draw.rect(screen, startl, [x, y + 140,width1,height1]) + else: + pygame.draw.rect(screen, startd, [x, y, width1,height1]) + pygame.draw.rect(screen, startd, [x, y + 70, width1 + + 40, height1]) + pygame.draw.rect(screen, startd, [x, y + 140,width1, height1]) + + if event.type == pygame.MOUSEBUTTONDOWN: + if x < mouse[0] < x + width1 and y < mouse[1] < y + height1: + #music() + game(lead_y, lead_x, speed, count) + + if event.type == pygame.MOUSEBUTTONDOWN: + if x < mouse[0] < width1 + x and y + 140 < mouse[1] < y + 140 + height1: + pygame.quit() + + if 0 <= colox_c1 <= 254 or 0 <= colox_c2 <= 254: + colox_c1 += 1 + colox_c2 += 1 + if colox_c1 >= 254 or colox_c2 >= 254: + colox_c1 = c3 + colox_c2 = c3 + + pygame.draw.rect(screen, (c2, colox_c1, colox_c2), [0, 0, 40, + height]) + pygame.draw.rect(screen, (c2, colox_c1, colox_c2), [width - 40, + 0, 40, height]) + smallfont = pygame.font.SysFont('Corbel', 35) + sig = smallfont.render('Deisgned by := Antriksh', True, white) + text = smallfont.render('Start', True, white) + text1 = smallfont.render('Options', True, white) + exit1 = smallfont.render('Exit', True, white) + colox = smallfont.render('Colox', True, (c1, colox_c1, + colox_c2)) + screen.blit(colox, (312, 50)) + screen.blit(text, (312, 295)) + screen.blit(text1, (312, 365)) + screen.blit(exit1, (312, 435)) + screen.blit(sig, (320, height - 50)) + clock.tick(60) + pygame.display.update() + + +intro( + colox_c1, + colox_c2, + colox, + exit1, + text1, + text, + ) \ No newline at end of file diff --git a/Space Invaders/simpletryout.py b/Space Invaders/simpletryout.py index d877882..86c56cd 100644 --- a/Space Invaders/simpletryout.py +++ b/Space Invaders/simpletryout.py @@ -225,6 +225,7 @@ def game( count += 1 speed += 1 if lead_y <= e1_p[1] + enemy_size <= lead_y + 40 and lead_x <= e1_p[0] <= lead_x + 40: + e1_p[0] = width + 100 e1_p[1] = random.randint(40, height - 40)