Compare commits
4 commits
82e829258f
...
24418b851c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
24418b851c | ||
|
|
2b7eec3518 | ||
|
|
6ed330a671 | ||
|
|
d3dbf217f9 |
3 changed files with 36 additions and 8 deletions
|
|
@ -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
36
game.py
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
@ -211,7 +214,7 @@ class Player(PhysicsEntity):
|
||||||
|
|
||||||
def update(self, tilemap: Tilemap, movement: tuple[float, float] = (0, 0)) -> None:
|
def update(self, tilemap: Tilemap, movement: tuple[float, float] = (0, 0)) -> None:
|
||||||
super().update(tilemap, movement)
|
super().update(tilemap, movement)
|
||||||
|
|
||||||
self.air_time += 1
|
self.air_time += 1
|
||||||
|
|
||||||
if self.air_time > 120 and not self.wall_slide:
|
if self.air_time > 120 and not self.wall_slide:
|
||||||
|
|
@ -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:
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue