Skip to content

Commit

Permalink
bug oiseau + musique + tp
Browse files Browse the repository at this point in the history
  • Loading branch information
Cassssian committed Nov 6, 2024
1 parent bb55622 commit f07ff2b
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 10 deletions.
14 changes: 14 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -199,3 +199,17 @@ Les contributions sont les bienvenues ! N'hésitez pas à ouvrir une issue ou à
## <div style="background: linear-gradient(to right, red, orange, yellow, green, blue, indigo, violet); -webkit-background-clip: text; -webkit-text-fill-color: transparent; font-size: 1.6em"><u>Auteur</u></div>

- [DucceschKleinsansklien Industries®](https://github.com/Cassssian)

---

<br>

## <div style="background: linear-gradient(to right, red, orange, yellow, green, blue, indigo, violet); -webkit-background-clip: text; -webkit-text-fill-color: transparent; font-size: 1.6em"><u>Aide</u></div>

Si vous avez besoin d'aide, n'hésitez pas à regarder cette section :

- Pour l'orbe en dessous de la tombe, essayez d'avoir le jauge de téléportation remplie, puis, arrivé vers le bout du sol, appuyez sur la touche `T` pour téléporter tout en récupérant l'orbe. Veillez à bien être aligné avec l'orbe sinon vous n'allez pas récupérer l'orbe.

- Pour l'orbe collé au mur, mettez vous bien aligné avec le mur, sauter, puis décalez-vous un peu vers la gauche. Si vous être bien placé, l'oiseau devrait se coller au mur et vous pourrez alors récupérer l'orbe en pressant la touche `Espace`.

- Pour l'orbe qui est au milieu de la terre, veuillez rendre hommage à la tombe avec tout les oiseaux puis vous aurez un portail qui vous amènera à l'orbe. Pour revenir, vous avez juste à traverser l'autre côté du portail.
57 changes: 47 additions & 10 deletions jeu.py
Original file line number Diff line number Diff line change
Expand Up @@ -391,6 +391,8 @@ def __init__(self) -> None:
self.error_timer = 0
self.win_music = False
self.music = False
self.music_play = False
self.win_music_play = False
# ================== END ===========================

# ============== ANIMATIONS ==========================
Expand Down Expand Up @@ -431,6 +433,7 @@ def __init__(self) -> None:
self.wait_timer = 0
self.show_timer = 40
self.partie_en_cours = False
self.reset_done = False
# =============== END =======================


Expand Down Expand Up @@ -473,6 +476,13 @@ def update(self) -> None:
Méthode qui gère les mises à jour du jeu
"""
if self.mode == "menu":
self.music = self.win_music = False
self.music_play = self.win_music_play = False

if not self.reset_done:
self.reset("menu")
self.reset_done = True
pyxel.load("1.pyxres")
self.animation_timer += 1
self.animation_timer_2 += 1
if self.animation_timer > 15:
Expand All @@ -498,8 +508,8 @@ def update(self) -> None:

if pyxel.btnp(pyxel.MOUSE_BUTTON_LEFT):
if self.is_button_clicked(self.button_start):
self.reset()
self.mode = "game"
self.reset("game")
self.reset_done = False
elif self.is_button_clicked(self.sauvegarde):
self.save_class.scroll_position = 0
self.save_class.click_ignore = True
Expand Down Expand Up @@ -599,7 +609,6 @@ def update(self) -> None:


if not self.music:
pyxel.playm(0, loop=True)
self.music = True


Expand Down Expand Up @@ -749,7 +758,7 @@ def update(self) -> None:

elif self.mode == "mort":
if pyxel.btn(pyxel.KEY_R):
self.reset()
self.reset("game")


elif self.mode == "pause":
Expand All @@ -762,10 +771,27 @@ def update(self) -> None:
pyxel.camera(0, 0)
pyxel.cls(0)
if not self.win_music:
pyxel.playm(1, loop=True)
self.win_music = True
if pyxel.btnp(pyxel.KEY_R):
self.reset()
self.reset("game")

self.play()


def play(self) -> None:
"""
Méthode qui gère la musique du jeu
"""
if self.music and not self.music_play:
pyxel.playm(0, loop=True)
self.music_play = True

elif self.win_music and not self.win_music_play:
pyxel.playm(1, loop=True)
self.win_music_play = True

elif not self.music and not self.win_music_play:
pyxel.stop()


def draw(self) -> None:
Expand Down Expand Up @@ -1256,10 +1282,13 @@ def is_button_clicked(self, button : dict[str, int | float]) -> bool :
button["y"] <= pyxel.mouse_y <= button["y"] + button["h"])


def reset(self) -> None:
def reset(self, mode) -> None:
"""
Méthode qui permet de reset le jeu
-------------------
mode : mode de jeu
"""
pyxel.load("1.pyxres")
self.blue_bird.reset()
self.green_bird.reset()
self.red_bird.reset()
Expand All @@ -1281,7 +1310,9 @@ def reset(self) -> None:
self.partie_en_cours = False
self.music = False
self.win_music = False
self.mode = "menu"
self.music_play = False
self.win_music_play = False
self.mode = mode
self.x = 0
self.y = 0
self.camera_x = 0
Expand Down Expand Up @@ -1419,6 +1450,7 @@ def update(self) -> None:

else:
if self.is_charging and self.tp_charge >= self.tp_max_charge:
self.teleport_jauge = 0
self.goto(self.stele.tp_blue())
self.is_charging = False
self.tp_charge = max(0, self.tp_charge - 1)
Expand All @@ -1430,6 +1462,7 @@ def update(self) -> None:

else:
if self.is_charging and self.tp_charge >= self.tp_max_charge:
self.teleport_jauge = 0
self.goto(self.stele.tp_blue())
self.is_charging = False
self.tp_charge = max(0, self.tp_charge - 1)
Expand Down Expand Up @@ -1728,6 +1761,7 @@ def update(self) -> None:
else:
if self.is_charging and self.tp_charge >= self.tp_max_charge:
self.goto(self.stele.tp_red())
self.teleport_jauge = 0
self.is_charging = False
self.tp_charge = max(0, self.tp_charge - 1)
if self.waiting >= 20:
Expand All @@ -1738,6 +1772,7 @@ def update(self) -> None:

else:
if self.is_charging and self.tp_charge >= self.tp_max_charge:
self.teleport_jauge = 0
self.goto(self.stele.tp_red())
self.is_charging = False
self.tp_charge = max(0, self.tp_charge - 1)
Expand Down Expand Up @@ -1782,8 +1817,8 @@ def check_collision_right(self, new_x : int) -> bool:
new_x : position x du zoiseaux
"""

top_tile = pyxel.tilemaps[0].pget((new_x + 6 + self.def_speed) // 8, self.y // 8) # Coin supérieur droit
bottom_tile = pyxel.tilemaps[0].pget((new_x + 6 + self.def_speed) // 8, (self.y + 7) // 8) # Coin inférieur droit
top_tile = pyxel.tilemaps[0].pget((new_x + self.def_speed + 4) // 8, self.y // 8) # Coin supérieur droit
bottom_tile = pyxel.tilemaps[0].pget((new_x + self.def_speed + 4) // 8, (self.y + 7) // 8) # Coin inférieur droit

# Si l'une des tuiles à droite est un obstacle (collide), il y a une collision
return top_tile not in self.pyxel_egal_caca.COLLIDERS and bottom_tile not in self.pyxel_egal_caca.COLLIDERS
Expand Down Expand Up @@ -2052,6 +2087,7 @@ def update(self) -> None:
else:
if self.is_charging and self.tp_charge >= self.tp_max_charge:
self.goto(self.stele.tp_green())
self.teleport_jauge = 0
self.is_charging = False
self.tp_charge = max(0, self.tp_charge - 1)
if self.waiting_particles >= 20:
Expand All @@ -2062,6 +2098,7 @@ def update(self) -> None:

else:
if self.is_charging and self.tp_charge >= self.tp_max_charge:
self.teleport_jauge = 0
self.goto(self.stele.tp_green())
self.is_charging = False
self.tp_charge = max(0, self.tp_charge - 1)
Expand Down

0 comments on commit f07ff2b

Please sign in to comment.