From 8cb8997f6a561808a3dc031cfbd62bf44ba37649 Mon Sep 17 00:00:00 2001 From: Your Namea Date: Sat, 8 Nov 2025 10:55:48 +0200 Subject: [PATCH] ha --- __pycache__/enemy.cpython-313.pyc | Bin 1939 -> 1939 bytes __pycache__/player.cpython-313.pyc | Bin 2611 -> 2611 bytes __pycache__/settings.cpython-313.pyc | Bin 211 -> 211 bytes enemy.py | 2 +- main.py | 133 +++++++++++++++++++-------- player.py | 8 +- settings.py | 4 +- sprites/Day.city.png | Bin 0 -> 36684 bytes sprites/{ => portal}/tile000.png | Bin sprites/{ => portal}/tile001.png | Bin sprites/{ => portal}/tile002.png | Bin sprites/{ => portal}/tile003.png | Bin sprites/{ => portal}/tile004.png | Bin sprites/{ => portal}/tile005.png | Bin sprites/{ => portal}/tile006.png | Bin sprites/{ => portal}/tile007.png | Bin sprites/{ => portal}/tile008.png | Bin sprites/{ => portal}/tile009.png | Bin sprites/{ => portal}/tile010.png | Bin sprites/{ => portal}/tile011.png | Bin sprites/{ => portal}/tile012.png | Bin sprites/{ => portal}/tile013.png | Bin sprites/{ => portal}/tile014.png | Bin sprites/{ => portal}/tile015.png | Bin 24 files changed, 102 insertions(+), 45 deletions(-) create mode 100644 sprites/Day.city.png rename sprites/{ => portal}/tile000.png (100%) rename sprites/{ => portal}/tile001.png (100%) rename sprites/{ => portal}/tile002.png (100%) rename sprites/{ => portal}/tile003.png (100%) rename sprites/{ => portal}/tile004.png (100%) rename sprites/{ => portal}/tile005.png (100%) rename sprites/{ => portal}/tile006.png (100%) rename sprites/{ => portal}/tile007.png (100%) rename sprites/{ => portal}/tile008.png (100%) rename sprites/{ => portal}/tile009.png (100%) rename sprites/{ => portal}/tile010.png (100%) rename sprites/{ => portal}/tile011.png (100%) rename sprites/{ => portal}/tile012.png (100%) rename sprites/{ => portal}/tile013.png (100%) rename sprites/{ => portal}/tile014.png (100%) rename sprites/{ => portal}/tile015.png (100%) diff --git a/__pycache__/enemy.cpython-313.pyc b/__pycache__/enemy.cpython-313.pyc index 53f1055df04c14d6bb18db4743c18642f7cc3ec5..ca96a84788def11e8e40287db36dc4cdda270339 100644 GIT binary patch delta 50 zcmbQtKbfERGcPX}0}xz!!k1~ck=KNojRnYi$+g*?xu20G>9VNi=36YBOpIESpRlb5 E07oPZzW@LL delta 50 zcmbQtKbfERGcPX}0}y=Q`Xm;e9( delta 33 mcmdlivRQ=ZGcPX}0}w3P@Frs;j~P4Le;|0txY>jKH4^~D+6^xN diff --git a/__pycache__/settings.cpython-313.pyc b/__pycache__/settings.cpython-313.pyc index acbd22d5d7e6bd519dd249f832c880d4c2860710..5232d6d17d786cd833921497b65d1279eee68f8d 100644 GIT binary patch delta 46 zcmcc2c$ty+GcPX}0}!Zv=F8Na$g9KNz|O#sX~8nlp^aC#f#-&RNF#3%D^LLd3{VP( delta 46 zcmcc2c$ty+GcPX}0}zOAd6S_&kynRZfti6JGlFTNLmRJ91J4Zs;YQvfR-gg^6_g6f diff --git a/enemy.py b/enemy.py index 06fba7b..2fe4b2c 100644 --- a/enemy.py +++ b/enemy.py @@ -16,7 +16,7 @@ class Enemy(pygame.sprite.Sprite): random.uniform(0, SCREEN_HEIGHT), ) ) - self.speed = random.uniform(1,2) + self.speed = random.uniform(4,10) diff --git a/main.py b/main.py index a719824..d4e43f9 100644 --- a/main.py +++ b/main.py @@ -14,6 +14,7 @@ from pygame.locals import ( QUIT, K_SPACE, K_f, + K_RETURN, ) pygame.mixer.init() @@ -23,99 +24,155 @@ pygame.font.init() my_font = pygame.font.SysFont('Comic Sans MS', 30) pygame.mixer.music.load("sounds/aura.mp3") -pygame.mixer.music.play(loops=-1) collision_sound = pygame.mixer.Sound("sounds/dead.ogg") - - screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT)) ADDENEMY = pygame.USEREVENT + 1 pygame.time.set_timer(ADDENEMY, 1000) running = True +game_started = False +# Initialize player, enemy, and sprite groups player = Player() - enemy = Enemy() - enemies = pygame.sprite.Group() all_sprites = pygame.sprite.Group() all_sprites.add(player) all_sprites.add(enemy) - enemies.add(enemy) -bg =pygame.image.load("sprites/Graveyard.png").convert() +bg1 = pygame.transform.scale(pygame.image.load("sprites/Day.city.png").convert(), (SCREEN_WIDTH, SCREEN_HEIGHT)) clock = pygame.time.Clock() -while Start: +# Start screen loop +while not game_started: for event in pygame.event.get(): - if event.type==KEYDOWN: - if event.type==K_SPACE: - Start = False - if event.key ==K_f: - Start = False + if event.type == KEYDOWN: + if event.key == K_SPACE: + game_started = True # Start the game when Space is pressed + if event.key == K_f: + game_started = True # Start the game when F is pressed (optional) elif event.type == QUIT: - Start = False - screen.fill((0,0,0)) - text= my_font.render("Start",True,(255,255,255)) - screen.blit(text,( - (SCREEN_WIDTH-text.get_width())/2, - (SCREEN_HEIGHT-text.get_height())/2 - )) - text = my_font.render("Press Space", True, (255,255,255)) + running = False + game_started = True # Exit the loop if quit event occurs + + screen.fill((0, 0, 0)) + text = my_font.render("Start", True, (255, 255, 255)) screen.blit(text, ( - (SCREEN_WIDTH-text.get_width())/2 - (SCREEN_HEIGHT-text.get_height()-200) + (SCREEN_WIDTH - text.get_width()) / 2, + (SCREEN_HEIGHT - text.get_height()) / 2, )) + text = my_font.render("Press Space to Start", True, (255, 255, 255)) + screen.blit(text, ( + (SCREEN_WIDTH - text.get_width()) / 2, + (SCREEN_HEIGHT - text.get_height() - 200) + )) + pygame.display.flip() - clock.tick(1000) + clock.tick(30) # Limit FPS to 30 + +pygame.mixer.music.play(loops=-1, fade_ms=1000) + + +# Main game loop while running: - screen.blit(bg, (0,0)) + screen.fill((0, 0, 0)) # Background color + screen.blit(bg1, (0, 0)) # Draw the background image + for event in pygame.event.get(): if event.type == KEYDOWN: if event.key == K_ESCAPE: - running = False + running = False # Quit on Escape + elif event.key == K_RETURN: # Press Enter to restart + # Reset the game state + player.kill() # Remove player from all_sprites + enemy.kill() # Remove enemy from all_sprites + enemies.empty() # Empty enemies group + all_sprites.empty() # Empty all_sprites group + + # Reinitialize player, enemies, and all sprites + player = Player() + enemy = Enemy() + enemies.add(enemy) + all_sprites.add(player) + all_sprites.add(enemy) + + # Reset background and re-enter game loop + continue # Restart game loop from the beginning elif event.type == QUIT: - running = False + running = False # Quit on window close elif event.type == ADDENEMY: + # Add a new enemy each second new_enemy = Enemy() enemies.add(new_enemy) all_sprites.add(new_enemy) - pressed_keys = pygame.key.get_pressed() player.update(pressed_keys) - enemies.update() + # Render all sprites for entity in all_sprites: screen.blit(entity.surf, entity.rect) + # Check for collisions between player and enemies if pygame.sprite.spritecollideany(player, enemies): + player.kill() # Remove player when it collides with an enemy + pygame.time.delay(250) # Wait a bit before showing the game over screen + + pygame.mixer.stop - player.kill() collision_sound.play() - pygame.time.delay(1000) - running=False + # Game Over screen after collision + screen.fill((0, 0, 0)) # Clear the screen with a black background + + text = my_font.render("Game Over", True, (255, 0, 0)) + screen.blit(text, ( + (SCREEN_WIDTH - text.get_width()) / 2, + (SCREEN_HEIGHT - text.get_height()) / 2 + )) - text =my_font.render("Ya dead yet?", True, (255,255,0)) - screen.blit(text, (SCREEN_WIDTH-text.get_width(), 0)) + text = my_font.render("Press Enter to Restart", True, (255, 255, 255)) + screen.blit(text, ( + (SCREEN_WIDTH - text.get_width()) / 2, + (SCREEN_HEIGHT - text.get_height()) / 2 + 50, + )) - pygame.display.flip() + text = my_font.render("Press Escape to Quit", True, (255, 255, 255)) + screen.blit(text, ( + (SCREEN_WIDTH - text.get_width()) / 2, + (SCREEN_HEIGHT - text.get_height()) / 2 +100, + )) -clock.tick(5050) + pygame.display.flip() + + # Wait for the player to press Enter to restart or Escape to quit + waiting_for_input = True + while waiting_for_input: + for event in pygame.event.get(): + if event.type == KEYDOWN: + if event.key == K_RETURN: + waiting_for_input = False # Player pressed Enter to restart + if event.key == K_ESCAPE: + running = False # Player pressed Escape to quit + waiting_for_input = False + elif event.type == QUIT: + waiting_for_input = False + running = False + + pygame.display.flip() # Update the screen + + clock.tick(60) # Limit FPS to 60 pygame.mixer.music.stop() pygame.mixer.quit() - pygame.quit() - diff --git a/player.py b/player.py index bd86441..0e56427 100644 --- a/player.py +++ b/player.py @@ -23,13 +23,13 @@ class Player(pygame.sprite.Sprite): #self.surf = pygame.Surface((40, 40)) def update(self, pressed_keys): if pressed_keys[K_UP]: - self.rect.move_ip(0, -1) + self.rect.move_ip(0, -4) if pressed_keys[K_DOWN]: - self.rect.move_ip(0, 1) + self.rect.move_ip(0, 4) if pressed_keys[K_LEFT]: - self.rect.move_ip(-1, 0) + self.rect.move_ip(-4, 0) if pressed_keys[K_RIGHT]: - self.rect.move_ip(1, 0) + self.rect.move_ip(4, 0) if self.rect.left < 0: self.rect.left = 0 diff --git a/settings.py b/settings.py index c2eeac2..63c5ac3 100644 --- a/settings.py +++ b/settings.py @@ -1,2 +1,2 @@ -SCREEN_WIDTH = 800 -SCREEN_HEIGHT = 600 \ No newline at end of file +SCREEN_WIDTH = 1920 +SCREEN_HEIGHT = 1080 \ No newline at end of file diff --git a/sprites/Day.city.png b/sprites/Day.city.png new file mode 100644 index 0000000000000000000000000000000000000000..5fb29e2dce2ed93a10f1e934ee0adf6c2649b156 GIT binary patch literal 36684 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 literal 0 HcmV?d00001 diff --git a/sprites/tile000.png b/sprites/portal/tile000.png similarity index 100% rename from sprites/tile000.png rename to sprites/portal/tile000.png diff --git a/sprites/tile001.png b/sprites/portal/tile001.png similarity index 100% rename from sprites/tile001.png rename to sprites/portal/tile001.png diff --git a/sprites/tile002.png b/sprites/portal/tile002.png similarity index 100% rename from sprites/tile002.png rename to sprites/portal/tile002.png diff --git a/sprites/tile003.png b/sprites/portal/tile003.png similarity index 100% rename from sprites/tile003.png rename to sprites/portal/tile003.png diff --git a/sprites/tile004.png b/sprites/portal/tile004.png similarity index 100% rename from sprites/tile004.png rename to sprites/portal/tile004.png diff --git a/sprites/tile005.png b/sprites/portal/tile005.png similarity index 100% rename from sprites/tile005.png rename to sprites/portal/tile005.png diff --git a/sprites/tile006.png b/sprites/portal/tile006.png similarity index 100% rename from sprites/tile006.png rename to sprites/portal/tile006.png diff --git a/sprites/tile007.png b/sprites/portal/tile007.png similarity index 100% rename from sprites/tile007.png rename to sprites/portal/tile007.png diff --git a/sprites/tile008.png b/sprites/portal/tile008.png similarity index 100% rename from sprites/tile008.png rename to sprites/portal/tile008.png diff --git a/sprites/tile009.png b/sprites/portal/tile009.png similarity index 100% rename from sprites/tile009.png rename to sprites/portal/tile009.png diff --git a/sprites/tile010.png b/sprites/portal/tile010.png similarity index 100% rename from sprites/tile010.png rename to sprites/portal/tile010.png diff --git a/sprites/tile011.png b/sprites/portal/tile011.png similarity index 100% rename from sprites/tile011.png rename to sprites/portal/tile011.png diff --git a/sprites/tile012.png b/sprites/portal/tile012.png similarity index 100% rename from sprites/tile012.png rename to sprites/portal/tile012.png diff --git a/sprites/tile013.png b/sprites/portal/tile013.png similarity index 100% rename from sprites/tile013.png rename to sprites/portal/tile013.png diff --git a/sprites/tile014.png b/sprites/portal/tile014.png similarity index 100% rename from sprites/tile014.png rename to sprites/portal/tile014.png diff --git a/sprites/tile015.png b/sprites/portal/tile015.png similarity index 100% rename from sprites/tile015.png rename to sprites/portal/tile015.png