the_game / main.py
warhawkmonk's picture
Upload 144 files
34ecae4 verified
Raw
History Blame Contribute Delete
30.5 kB
import sys
import pygame
import random
from controls import move_player, move_player_with_joystick
from classes.constants import WIDTH, HEIGHT, FPS, SHOOT_DELAY
from functions import show_game_over, music_background
from menu import show_menu
from classes.player import Player
from classes.bullets import Bullet
from classes.refill import BulletRefill, HealthRefill, DoubleRefill, ExtraScore
from classes.meteors import Meteors, Meteors2, BlackHole
from classes.explosions import Explosion, Explosion2
from classes.enemies import Enemy1, Enemy2
from classes.bosses import Boss1, Boss2, Boss3
pygame.init()
music_background()
screen = pygame.display.set_mode((WIDTH, HEIGHT))
surface = pygame.Surface((WIDTH, HEIGHT))
pygame.display.set_caption("Cosmic Heat")
clock = pygame.time.Clock()
explosions = pygame.sprite.Group()
explosions2 = pygame.sprite.Group()
bullets = pygame.sprite.Group()
enemy1_group = pygame.sprite.Group()
enemy2_group = pygame.sprite.Group()
boss1_group = pygame.sprite.Group()
boss2_group = pygame.sprite.Group()
boss3_group = pygame.sprite.Group()
bullet_refill_group = pygame.sprite.Group()
health_refill_group = pygame.sprite.Group()
double_refill_group = pygame.sprite.Group()
meteor_group = pygame.sprite.Group()
meteor2_group = pygame.sprite.Group()
extra_score_group = pygame.sprite.Group()
black_hole_group = pygame.sprite.Group()
enemy2_bullets = pygame.sprite.Group()
boss1_bullets = pygame.sprite.Group()
boss2_bullets = pygame.sprite.Group()
boss3_bullets = pygame.sprite.Group()
boss1_health = 150
boss1_health_bar_rect = pygame.Rect(0, 0, 150, 5)
boss1_spawned = False
boss2_health = 150
boss2_health_bar_rect = pygame.Rect(0, 0, 150, 5)
boss2_spawned = False
boss3_health = 200
boss3_health_bar_rect = pygame.Rect(0, 0, 200, 5)
boss3_spawned = False
bg_y_shift = -HEIGHT
background_img = pygame.image.load('images/bg/background.jpg').convert()
background_img2 = pygame.image.load('images/bg/background2.png').convert()
background_img3 = pygame.image.load('images/bg/background3.png').convert()
background_img4 = pygame.image.load('images/bg/background4.png').convert()
background_top = background_img.copy()
current_image = background_img
new_background_activated = False
explosion_images = [pygame.image.load(f"images/explosion/explosion{i}.png") for i in range(8)]
explosion2_images = [pygame.image.load(f"images/explosion2/explosion{i}.png") for i in range(18)]
explosion3_images = [pygame.image.load(f"images/explosion3/explosion{i}.png") for i in range(18)]
enemy1_img = [
pygame.image.load('images/enemy/enemy1_1.png').convert_alpha(),
pygame.image.load('images/enemy/enemy1_2.png').convert_alpha(),
pygame.image.load('images/enemy/enemy1_3.png').convert_alpha()
]
enemy2_img = [
pygame.image.load('images/enemy/enemy2_1.png').convert_alpha(),
pygame.image.load('images/enemy/enemy2_2.png').convert_alpha()
]
boss1_img = pygame.image.load('images/boss/boss1.png').convert_alpha()
boss2_img = pygame.image.load('images/boss/boss2_1.png').convert_alpha()
boss3_img = pygame.image.load('images/boss/boss3.png').convert_alpha()
health_refill_img = pygame.image.load('images/refill/health_refill.png').convert_alpha()
bullet_refill_img = pygame.image.load('images/refill/bullet_refill.png').convert_alpha()
double_refill_img = pygame.image.load('images/refill/double_refill.png').convert_alpha()
meteor_imgs = [
pygame.image.load('images/meteors/meteor_1.png').convert_alpha(),
pygame.image.load('images/meteors/meteor_2.png').convert_alpha(),
pygame.image.load('images/meteors/meteor_3.png').convert_alpha(),
pygame.image.load('images/meteors/meteor_4.png').convert_alpha()
]
meteor2_imgs = [
pygame.image.load('images/meteors/meteor2_1.png').convert_alpha(),
pygame.image.load('images/meteors/meteor2_2.png').convert_alpha(),
pygame.image.load('images/meteors/meteor2_3.png').convert_alpha(),
pygame.image.load('images/meteors/meteor2_4.png').convert_alpha()
]
extra_score_img = pygame.image.load('images/score/score_coin.png').convert_alpha()
black_hole_imgs = [
pygame.image.load('images/hole/black_hole.png').convert_alpha(),
pygame.image.load('images/hole/black_hole2.png').convert_alpha()
]
initial_player_pos = (WIDTH // 2, HEIGHT - 100)
score = 0
hi_score = 0
player = Player()
player_life = 200
bullet_counter = 200
paused = False
running = True
joystick = None
if pygame.joystick.get_count() > 0:
joystick = pygame.joystick.Joystick(0)
joystick.init()
if show_menu:
import menu
menu.main()
is_shooting = False
last_shot_time = 0
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE and not paused:
if bullet_counter > 0 and pygame.time.get_ticks() - last_shot_time > SHOOT_DELAY:
last_shot_time = pygame.time.get_ticks()
bullet = Bullet(player.rect.centerx, player.rect.top)
bullets.add(bullet)
bullet_counter -= 1
is_shooting = True
elif event.key == pygame.K_ESCAPE:
sys.exit(0)
elif event.key == pygame.K_p or event.key == pygame.K_PAUSE:
paused = not paused
elif not paused:
if event.key == pygame.K_LEFT:
player.move_left()
elif event.key == pygame.K_RIGHT:
player.move_right()
elif event.key == pygame.K_UP:
player.move_up()
elif event.key == pygame.K_DOWN:
player.move_down()
elif event.type == pygame.KEYUP:
if event.key == pygame.K_SPACE and player.original_image is not None:
player.image = player.original_image.copy()
is_shooting = False
elif not paused:
if event.key == pygame.K_LEFT:
player.stop_left()
elif event.key == pygame.K_RIGHT:
player.stop_right()
elif event.key == pygame.K_UP:
player.stop_up()
elif event.key == pygame.K_DOWN:
player.stop_down()
elif event.type == pygame.JOYBUTTONDOWN:
if event.button == 0 and not paused:
is_shooting = True
if bullet_counter > 0:
bullet = Bullet(player.rect.centerx, player.rect.top)
bullets.add(bullet)
bullet_counter -= 1
elif event.button == 7:
paused = not paused
elif event.type == pygame.JOYBUTTONUP:
if event.button == 0 and player.original_image is not None:
is_shooting = False
if pygame.time.get_ticks() - last_shot_time > SHOOT_DELAY and is_shooting and not paused:
if bullet_counter > 0:
last_shot_time = pygame.time.get_ticks()
bullet = Bullet(player.rect.centerx, player.rect.top)
bullets.add(bullet)
bullet_counter -= 1
if joystick:
if not paused:
move_player_with_joystick(joystick, player)
if paused:
font = pygame.font.SysFont('Comic Sans MS', 40)
text = font.render("PAUSE", True, (255, 255, 255))
text_rect = text.get_rect(center=(WIDTH / 2, HEIGHT / 2))
screen.blit(text, text_rect)
pygame.display.flip()
continue
keys = pygame.key.get_pressed()
if not paused:
move_player(keys, player)
screen.blit(current_image, (0, bg_y_shift))
background_top_rect = background_top.get_rect(topleft=(0, bg_y_shift))
background_top_rect.top = bg_y_shift + HEIGHT
screen.blit(background_top, background_top_rect)
bg_y_shift += 1
if bg_y_shift >= 0:
bg_y_shift = -HEIGHT
if score > 3000:
bg_y_shift += 2
if score >= 3000 and not new_background_activated:
current_image = background_img2
background_top = background_img2.copy()
new_background_activated = True
if score >= 10000 and new_background_activated:
current_image = background_img3
background_top = background_img3.copy()
if score >= 15000 and new_background_activated:
current_image = background_img4
background_top = background_img4.copy()
if score == 0:
current_image = background_img
background_top = background_img.copy()
new_background_activated = False
screen.blit(current_image, (0, bg_y_shift))
background_top_rect = background_top.get_rect(topleft=(0, bg_y_shift))
background_top_rect.top = bg_y_shift + HEIGHT
screen.blit(background_top, background_top_rect)
if score > hi_score:
hi_score = score
if random.randint(0, 120) == 0:
enemy_img = random.choice(enemy1_img)
enemy_object = Enemy1(
random.randint(100, WIDTH - 50),
random.randint(-HEIGHT, -50),
enemy_img,
)
enemy1_group.add(enemy_object)
if score >= 3000 and random.randint(0, 40) == 0 and len(enemy2_group) < 2:
enemy_img = random.choice(enemy2_img)
enemy2_object = Enemy2(
random.randint(200, WIDTH - 100),
random.randint(-HEIGHT, -100),
enemy_img,
)
enemy2_group.add(enemy2_object)
if score >= 5000 and not boss1_spawned:
pygame.mixer.Sound('game_sounds/warning.mp3').play()
boss1_img = boss1_img
boss1_object = Boss1(
random.randint(200, WIDTH - 100),
random.randint(-HEIGHT, -100),
boss1_img,
)
boss1_group.add(boss1_object)
boss1_spawned = True
if score >= 10000 and not boss2_spawned:
pygame.mixer.Sound('game_sounds/warning.mp3').play()
boss2_img = boss2_img
boss2_object = Boss2(
random.randint(200, WIDTH - 100),
random.randint(-HEIGHT, -100),
boss2_img,
)
boss2_group.add(boss2_object)
boss2_spawned = True
if score >= 15000 and not boss3_spawned:
pygame.mixer.Sound('game_sounds/warning.mp3').play()
boss3_img = boss3_img
boss3_object = Boss3(
random.randint(200, WIDTH - 100),
random.randint(-HEIGHT, -100),
boss3_img,
)
boss3_group.add(boss3_object)
boss3_spawned = True
if random.randint(0, 60) == 0:
extra_score = ExtraScore(
random.randint(50, WIDTH - 50),
random.randint(-HEIGHT, -50 - extra_score_img.get_rect().height),
extra_score_img,
)
extra_score_group.add(extra_score)
if score > 3000 and random.randint(0, 100) == 0:
meteor_img = random.choice(meteor_imgs)
meteor_object = Meteors(
random.randint(0, 50),
random.randint(0, 50),
meteor_img,
)
meteor_group.add(meteor_object)
if random.randint(0, 90) == 0:
meteor2_img = random.choice(meteor2_imgs)
meteor2_object = Meteors2(
random.randint(100, WIDTH - 50),
random.randint(-HEIGHT, -50 - meteor2_img.get_rect().height),
meteor2_img,
)
meteor2_group.add(meteor2_object)
if score > 1000 and random.randint(0, 500) == 0:
black_hole_img = random.choice(black_hole_imgs)
black_hole_object = BlackHole(
random.randint(100, WIDTH - 50),
random.randint(-HEIGHT, -50 - black_hole_img.get_rect().height),
black_hole_img,
)
black_hole_group.add(black_hole_object)
if player_life <= 0:
show_game_over(score)
boss1_spawned = False
boss1_health = 150
boss2_spawned = False
boss2_health = 150
boss3_spawned = False
boss3_health = 200
score = 0
player_life = 200
bullet_counter = 200
player.rect.topleft = initial_player_pos
bullets.empty()
bullet_refill_group.empty()
health_refill_group.empty()
double_refill_group.empty()
extra_score_group.empty()
black_hole_group.empty()
meteor_group.empty()
meteor2_group.empty()
enemy1_group.empty()
enemy2_group.empty()
boss1_group.empty()
boss2_group.empty()
boss3_group.empty()
explosions.empty()
explosions2.empty()
for black_hole_object in black_hole_group:
black_hole_object.update()
black_hole_object.draw(screen)
if black_hole_object.rect.colliderect(player.rect):
player_life -= 1
black_hole_object.sound_effect.play()
if score >= 5000:
meteor_object.speed = 4
if score >= 10000:
meteor_object.speed = 4
if score >= 15000:
meteor_object.speed = 6
if score >= 20000:
meteor_object.speed = 8
for bullet_refill in bullet_refill_group:
bullet_refill.update()
bullet_refill.draw(screen)
if player.rect.colliderect(bullet_refill.rect):
if bullet_counter < 200:
bullet_counter += 50
if bullet_counter > 200:
bullet_counter = 200
bullet_refill.kill()
bullet_refill.sound_effect.play()
else:
bullet_refill.kill()
bullet_refill.sound_effect.play()
for health_refill in health_refill_group:
health_refill.update()
health_refill.draw(screen)
if player.rect.colliderect(health_refill.rect):
if player_life < 200:
player_life += 50
if player_life > 200:
player_life = 200
health_refill.kill()
health_refill.sound_effect.play()
else:
health_refill.kill()
health_refill.sound_effect.play()
for extra_score in extra_score_group:
extra_score.update()
extra_score.draw(screen)
if player.rect.colliderect(extra_score.rect):
score += 20
extra_score.kill()
extra_score.sound_effect.play()
if score >= 3000:
extra_score.speed = 2
if score >= 10000:
extra_score.speed = 4
if score >= 15000:
extra_score.speed = 6
if score >= 20000:
extra_score.speed = 8
for double_refill in double_refill_group:
double_refill.update()
double_refill.draw(screen)
if player.rect.colliderect(double_refill.rect):
if player_life < 200:
player_life += 50
if player_life > 200:
player_life = 200
if bullet_counter < 200:
bullet_counter += 50
if bullet_counter > 200:
bullet_counter = 200
double_refill.kill()
double_refill.sound_effect.play()
else:
double_refill.kill()
double_refill.sound_effect.play()
for meteor_object in meteor_group:
meteor_object.update()
meteor_object.draw(screen)
if meteor_object.rect.colliderect(player.rect):
player_life -= 10
explosion = Explosion(meteor_object.rect.center, explosion_images)
explosions.add(explosion)
meteor_object.kill()
score += 50
bullet_collisions = pygame.sprite.spritecollide(meteor_object, bullets, True)
for bullet_collision in bullet_collisions:
explosion = Explosion(meteor_object.rect.center, explosion_images)
explosions.add(explosion)
meteor_object.kill()
score += 80
if random.randint(0, 10) == 0:
double_refill = DoubleRefill(
meteor_object.rect.centerx,
meteor_object.rect.centery,
double_refill_img,
)
double_refill_group.add(double_refill)
if score >= 3000:
meteor_object.speed = 4
if score >= 10000:
meteor_object.speed = 6
if score >= 15000:
meteor_object.speed = 8
if score >= 20000:
meteor_object.speed = 10
for meteor2_object in meteor2_group:
meteor2_object.update()
meteor2_object.draw(screen)
if meteor2_object.rect.colliderect(player.rect):
player_life -= 10
explosion = Explosion(meteor2_object.rect.center, explosion_images)
explosions.add(explosion)
meteor2_object.kill()
score += 20
bullet_collisions = pygame.sprite.spritecollide(meteor2_object, bullets, True)
for bullet_collision in bullet_collisions:
explosion = Explosion(meteor2_object.rect.center, explosion_images)
explosions.add(explosion)
meteor2_object.kill()
score += 40
if random.randint(0, 20) == 0:
double_refill = DoubleRefill(
meteor2_object.rect.centerx,
meteor2_object.rect.centery,
double_refill_img,
)
double_refill_group.add(double_refill)
if score >= 3000:
meteor2_object.speed = 4
if score >= 10000:
meteor2_object.speed = 6
if score >= 15000:
meteor2_object.speed = 8
if score >= 20000:
meteor2_object.speed = 10
for enemy_object in enemy1_group:
enemy_object.update(enemy1_group)
enemy1_group.draw(screen)
if enemy_object.rect.colliderect(player.rect):
player_life -= 10
explosion = Explosion(enemy_object.rect.center, explosion_images)
explosions.add(explosion)
enemy_object.kill()
score += 20
bullet_collisions = pygame.sprite.spritecollide(enemy_object, bullets, True)
for bullet_collision in bullet_collisions:
explosion = Explosion(enemy_object.rect.center, explosion_images)
explosions.add(explosion)
enemy_object.kill()
score += 50
if random.randint(0, 8) == 0:
bullet_refill = BulletRefill(
enemy_object.rect.centerx,
enemy_object.rect.centery,
bullet_refill_img,
)
bullet_refill_group.add(bullet_refill)
if random.randint(0, 8) == 0:
health_refill = HealthRefill(
random.randint(50, WIDTH - 30),
random.randint(-HEIGHT, -30),
health_refill_img,
)
health_refill_group.add(health_refill)
for enemy2_object in enemy2_group:
enemy2_object.update(enemy2_group, enemy2_bullets, player)
enemy2_group.draw(screen)
enemy2_bullets.update()
enemy2_bullets.draw(screen)
if enemy2_object.rect.colliderect(player.rect):
player_life -= 40
explosion2 = Explosion2(enemy2_object.rect.center, explosion2_images)
explosions2.add(explosion2)
enemy2_object.kill()
score += 20
bullet_collisions = pygame.sprite.spritecollide(enemy2_object, bullets, True)
for bullet_collision in bullet_collisions:
explosion2 = Explosion2(enemy2_object.rect.center, explosion2_images)
explosions2.add(explosion2)
enemy2_object.kill()
score += 80
if random.randint(0, 20) == 0:
double_refill = DoubleRefill(
enemy2_object.rect.centerx,
enemy2_object.rect.centery,
double_refill_img,
)
double_refill_group.add(double_refill)
for enemy2_bullet in enemy2_bullets:
if enemy2_bullet.rect.colliderect(player.rect):
player_life -= 10
explosion = Explosion(player.rect.center, explosion3_images)
explosions.add(explosion)
enemy2_bullet.kill()
for boss1_object in boss1_group:
boss1_object.update(boss1_bullets, player)
boss1_group.draw(screen)
boss1_bullets.update()
boss1_bullets.draw(screen)
if boss1_object.rect.colliderect(player.rect):
player_life -= 20
explosion = Explosion2(boss1_object.rect.center, explosion2_images)
explosions2.add(explosion)
bullet_collisions = pygame.sprite.spritecollide(boss1_object, bullets, True)
for bullet_collision in bullet_collisions:
explosion2 = Explosion(boss1_object.rect.center, explosion2_images)
explosions2.add(explosion2)
boss1_health -= 5
if boss1_health <= 0:
explosion = Explosion2(boss1_object.rect.center, explosion3_images)
explosions.add(explosion)
boss1_object.kill()
score += 400
if random.randint(0, 20) == 0:
double_refill = DoubleRefill(
boss1_object.rect.centerx,
boss1_object.rect.centery,
double_refill_img,
)
double_refill_group.add(double_refill)
for boss1_bullet in boss1_bullets:
if boss1_bullet.rect.colliderect(player.rect):
player_life -= 20
explosion = Explosion(player.rect.center, explosion3_images)
explosions.add(explosion)
boss1_bullet.kill()
if boss1_health <= 0:
explosion = Explosion2(boss1_object.rect.center, explosion2_images)
explosions2.add(explosion)
boss1_object.kill()
if boss1_group:
boss1_object = boss1_group.sprites()[0]
boss1_health_bar_rect.center = (boss1_object.rect.centerx, boss1_object.rect.top - 5)
pygame.draw.rect(screen, (255, 0, 0), boss1_health_bar_rect)
pygame.draw.rect(screen, (0, 255, 0), (boss1_health_bar_rect.left, boss1_health_bar_rect.top, boss1_health, boss1_health_bar_rect.height))
for boss2_object in boss2_group:
boss2_object.update(boss2_bullets, player)
boss2_group.draw(screen)
boss2_bullets.update()
boss2_bullets.draw(screen)
if boss2_object.rect.colliderect(player.rect):
player_life -= 2
explosion2 = Explosion2(boss2_object.rect.center, explosion2_images)
explosions2.add(explosion2)
bullet_collisions = pygame.sprite.spritecollide(boss2_object, bullets, True)
for bullet_collision in bullet_collisions:
explosion2 = Explosion2(boss2_object.rect.center, explosion2_images)
explosions2.add(explosion2)
boss2_health -= 8
if boss2_health <= 0:
explosion2 = Explosion2(boss2_object.rect.center, explosion3_images)
explosions2.add(explosion2)
boss2_object.kill()
score += 800
if random.randint(0, 20) == 0:
double_refill = DoubleRefill(
boss2_object.rect.centerx,
boss2_object.rect.centery,
double_refill_img,
)
double_refill_group.add(double_refill)
for boss2_bullet in boss2_bullets:
if boss2_bullet.rect.colliderect(player.rect):
player_life -= 20
explosion = Explosion(player.rect.center, explosion3_images)
explosions.add(explosion)
boss2_bullet.kill()
if boss2_health <= 0:
explosion = Explosion2(boss2_object.rect.center, explosion2_images)
explosions2.add(explosion)
boss2_object.kill()
if boss2_group:
boss2_object = boss2_group.sprites()[0]
boss2_health_bar_rect.center = (boss2_object.rect.centerx, boss2_object.rect.top - 5)
pygame.draw.rect(screen, (255, 0, 0), boss2_health_bar_rect)
pygame.draw.rect(screen, (0, 255, 0), (boss2_health_bar_rect.left, boss2_health_bar_rect.top, boss2_health, boss2_health_bar_rect.height))
for boss3_object in boss3_group:
boss3_object.update(boss3_bullets, player)
boss3_group.draw(screen)
boss3_bullets.update()
boss3_bullets.draw(screen)
if boss3_object.rect.colliderect(player.rect):
player_life -= 1
explosion2 = Explosion2(boss3_object.rect.center, explosion2_images)
explosions2.add(explosion2)
bullet_collisions = pygame.sprite.spritecollide(boss3_object, bullets, True)
for bullet_collision in bullet_collisions:
explosion2 = Explosion2(boss3_object.rect.center, explosion2_images)
explosions2.add(explosion2)
boss3_health -= 6
if boss3_health <= 0:
explosion2 = Explosion2(boss3_object.rect.center, explosion3_images)
explosions2.add(explosion2)
boss3_object.kill()
score += 1000
if random.randint(0, 20) == 0:
double_refill = DoubleRefill(
boss3_object.rect.centerx,
boss3_object.rect.centery,
double_refill_img,
)
double_refill_group.add(double_refill)
for boss3_bullet in boss3_bullets:
if boss3_bullet.rect.colliderect(player.rect):
player_life -= 20
explosion = Explosion(player.rect.center, explosion3_images)
explosions.add(explosion)
boss3_bullet.kill()
if boss3_health <= 0:
explosion = Explosion2(boss3_object.rect.center, explosion2_images)
explosions2.add(explosion)
boss3_object.kill()
if boss3_group:
boss3_object = boss3_group.sprites()[0]
boss3_health_bar_rect.center = (
boss3_object.rect.centerx,
boss3_object.rect.top - 5
)
pygame.draw.rect(screen, (255, 0, 0), boss3_health_bar_rect)
pygame.draw.rect(screen, (0, 255, 0), (
boss3_health_bar_rect.left,
boss3_health_bar_rect.top,
boss3_health,
boss3_health_bar_rect.height)
)
player_image_copy = player.image.copy()
screen.blit(player_image_copy, player.rect)
for explosion in explosions:
explosion.update()
screen.blit(explosion.image, explosion.rect)
for explosion2 in explosions2:
explosion2.update()
screen.blit(explosion2.image, explosion2.rect)
for bullet in bullets:
bullet.update()
screen.blit(bullet.image, bullet.rect)
if bullet.rect.bottom < 0:
bullet.kill()
bullet_counter -= 1
player_life_surface = pygame.Surface((200, 25), pygame.SRCALPHA, 32)
player_life_surface.set_alpha(216)
player_life_bar_width = int(player_life / 200 * 200)
player_life_bar_width = max(0, min(player_life_bar_width, 200))
player_life_bar = pygame.Surface((player_life_bar_width, 30), pygame.SRCALPHA, 32)
player_life_bar.set_alpha(216)
life_bar_image = pygame.image.load("images/life_bar.png").convert_alpha()
if player_life > 50:
player_life_bar.fill((152, 251, 152))
else:
player_life_bar.fill((0, 0, 0))
player_life_surface.blit(life_bar_image, (0, 0))
player_life_surface.blit(player_life_bar, (35, 0))
life_x_pos = 10
screen.blit(player_life_surface, (life_x_pos, 10))
bullet_counter_surface = pygame.Surface((200, 25), pygame.SRCALPHA, 32)
bullet_counter_surface.set_alpha(216)
bullet_counter_bar = pygame.Surface(((bullet_counter / 200) * 200, 30), pygame.SRCALPHA, 32)
bullet_counter_bar.set_alpha(216)
bullet_bar_image = pygame.image.load("images/bullet_bar.png").convert_alpha()
if bullet_counter > 50:
bullet_counter_bar.fill((255, 23, 23))
else:
bullet_counter_bar.fill((0, 0, 0))
bullet_counter_surface.blit(bullet_bar_image, (0, 0))
bullet_counter_surface.blit(bullet_counter_bar, (35, 0))
bullet_x_pos = 10
bullet_y_pos = player_life_surface.get_height() + 20
screen.blit(bullet_counter_surface, (bullet_x_pos, bullet_y_pos))
score_surface = pygame.font.SysFont('Comic Sans MS', 30).render(f'{score}', True, (238, 232, 170))
score_image_rect = score_surface.get_rect()
score_image_rect.x, score_image_rect.y = WIDTH - score_image_rect.width - extra_score_img.get_width() - 10, 10
screen.blit(extra_score_img, (score_image_rect.right + 5, score_image_rect.centery - extra_score_img.get_height()//2))
screen.blit(score_surface, score_image_rect)
hi_score_surface = pygame.font.SysFont('Comic Sans MS', 20).render(f'HI-SCORE: {hi_score}', True, (255, 255, 255))
hi_score_surface.set_alpha(128)
hi_score_x_pos = (screen.get_width() - hi_score_surface.get_width()) // 2
hi_score_y_pos = 0
screen.blit(hi_score_surface, (hi_score_x_pos, hi_score_y_pos))
pygame.display.flip()
clock.tick(FPS)
pygame.mixer.music.stop()
pygame.quit()
sys.exit()