Compare commits

..

4 commits

3 changed files with 36 additions and 8 deletions

View file

@ -32,7 +32,7 @@ class Editor:
self.tilemap: Tilemap = Tilemap(game=self, tile_size=16) self.tilemap: Tilemap = Tilemap(game=self, tile_size=16)
self.map_id: int | str = "jays_map" self.map_id: int | str = "jays_new_map"
self.load_level(self.map_id) self.load_level(self.map_id)
self.scroll: list[float] = [0, 0] self.scroll: list[float] = [0, 0]

36
game.py
View file

@ -78,18 +78,34 @@ class Game:
"gun": load_image(path="gun.png"), "gun": load_image(path="gun.png"),
"projectile": load_image(path="projectile.png"), "projectile": load_image(path="projectile.png"),
} }
self.sfx = {
"jump": pygame.mixer.Sound("data/sfx/jump.wav"),
"dash": pygame.mixer.Sound("data/sfx/dash.wav"),
"hit": pygame.mixer.Sound("data/sfx/hit.wav"),
"shoot": pygame.mixer.Sound("data/sfx/shoot.wav"),
"ambience": pygame.mixer.Sound("data/sfx/ambience.wav"),
}
self.sfx["ambience"].set_volume(0.2)
self.sfx["shoot"].set_volume(0.4)
self.sfx["hit"].set_volume(0.8)
self.sfx["dash"].set_volume(0.3)
self.sfx["jump"].set_volume(0.7)
self.player: Player = Player(game=self, pos=(50, 50), size=(8, 15)) self.player: Player = Player(game=self, pos=(50, 50), size=(8, 15))
self.tilemap: Tilemap = Tilemap(game=self, tile_size=16) self.tilemap: Tilemap = Tilemap(game=self, tile_size=16)
self.level: int | str = "jays_map" self.level: int | str = "jays_new_map"
self.load_level(map_id=self.level) self.load_level(map_id=self.level)
self.screenshake = 0 self.screenshake = 0
self.clouds: Clouds = Clouds(cloud_images=self.assets["clouds"], count=16) self.clouds: Clouds = Clouds(cloud_images=self.assets["clouds"], count=16)
self.isJumping: bool = False self.isJumping: bool = False
# self.boost: bool = False # self.boost: bool = Falsed
def load_level(self, map_id: str | int): def load_level(self, map_id: str | int):
try: try:
@ -122,6 +138,12 @@ class Game:
self.transition: int = -30 self.transition: int = -30
def run(self) -> None: def run(self) -> None:
pygame.mixer.music.load("data/music.wav")
pygame.mixer.music.set_volume(0.5)
pygame.mixer.music.play(loops=-1)
self.sfx["ambience"].play(loops=-1)
while self.running: while self.running:
self.display.fill((0, 0, 0, 0)) self.display.fill((0, 0, 0, 0))
self.display_2.blit(self.assets["background"], (0, 0)) self.display_2.blit(self.assets["background"], (0, 0))
@ -214,6 +236,7 @@ class Game:
if self.player.rect().collidepoint(projectile[0]): if self.player.rect().collidepoint(projectile[0]):
self.projectiles.remove(projectile) self.projectiles.remove(projectile)
self.dead += 1 self.dead += 1
self.sfx["hit"].play()
for _ in range(30): for _ in range(30):
angle = random.random() * math.pi * 2 angle = random.random() * math.pi * 2
speed = random.random() * 5 speed = random.random() * 5
@ -274,11 +297,12 @@ class Game:
if ( if (
event.key == pygame.K_SPACE or event.key == pygame.K_w event.key == pygame.K_SPACE or event.key == pygame.K_w
): # and not self.isJumping ): # and not self.isJumping
self.player.jump() if self.player.jump():
self.sfx["jump"].play()
if event.key == pygame.K_m: # if event.key == pygame.K_m:
# self.boost = True # # self.boost = True
self.player.boost() # self.player.boost()
if ( if (
event.key == pygame.K_x event.key == pygame.K_x

View file

@ -137,6 +137,7 @@ class Enemy(PhysicsEntity):
self.game.projectiles.append( self.game.projectiles.append(
[[self.rect().centerx - 7, self.rect().centery], -1.5, 0] [[self.rect().centerx - 7, self.rect().centery], -1.5, 0]
) )
self.game.sfx["shoot"].play()
for _ in range(4): for _ in range(4):
self.game.sparks.append( self.game.sparks.append(
Spark( Spark(
@ -149,6 +150,7 @@ class Enemy(PhysicsEntity):
self.game.projectiles.append( self.game.projectiles.append(
[[self.rect().centerx + 7, self.rect().centery], 1.5, 0] [[self.rect().centerx + 7, self.rect().centery], 1.5, 0]
) )
self.game.sfx["shoot"].play()
for _ in range(4): for _ in range(4):
self.game.sparks.append( self.game.sparks.append(
Spark( Spark(
@ -171,6 +173,7 @@ class Enemy(PhysicsEntity):
if abs(self.game.player.dashing) >= 50: if abs(self.game.player.dashing) >= 50:
if self.rect().colliderect(self.game.player.rect()): if self.rect().colliderect(self.game.player.rect()):
self.game.screenshake = max(16, self.game.screenshake) self.game.screenshake = max(16, self.game.screenshake)
self.game.sfx["hit"].play()
for _ in range(30): for _ in range(30):
angle = random.random() * math.pi * 2 angle = random.random() * math.pi * 2
speed = random.random() * 5 speed = random.random() * 5
@ -337,6 +340,7 @@ class Player(PhysicsEntity):
def dash(self) -> None: def dash(self) -> None:
if not self.dashing: if not self.dashing:
self.game.sfx["dash"].play()
if self.flip: if self.flip:
self.dashing = -60 self.dashing = -60
else: else: