Je tente d'écrire un jeu en utilisant livewires et pygame où j'ai un chef (seule image que j'ai eu, haha), évitez les rochers qui tombent du ciel. Les roches sont censées tomber dans des endroits aléatoires. Je veux qu'il y ait 1 chute de pierre, puis chaque fois que vous réussissez à esquiver un rocher, 2 autres pierres tombent, jusqu'à ce que vous perdiez. Ce que j'ai jusqu'ici, c'est le chef et 1 rock qui tombe. Cependant, pour une raison ou une autre, si les sprites entrent en collision, ou si la pierre touche le bas de l'écran, le jeu se termine, sans donner un message sur le jeu comme je le lui ai dit. Je suis très confus et je ne peux pas voir ce que j'ai fait. Je sais que je ne l'ai pas codé correctement pour la partie des 2 roches, mais je ne peux même pas l'obtenir légèrement. Aidez-moi! Voici ce que j'ai maintenant:'Dodger' jeu de type
from livewires import games, color
import random
games.init(screen_width = 640, screen_height = 480, fps = 50)
class Chef(games.Sprite):
image = games.load_image("chef.bmp")
def __init__(self):
super(Chef, self).__init__(image = Chef.image,
x = games.mouse.x,
bottom = games.screen.height)
def update(self):
self.x = games.mouse.x
if self.left < 0:
self.left = 0
if self.right > games.screen.width:
self.right = games.screen.width
self.check_catch()
def check_catch(self):
for pizza in self.overlapping_sprites:
if not self.bottom>games.screen.height:
self.end_game()
class Rock(games.Sprite):
def update(self):
if self.bottom > games.screen.height:
new_rock=Rock(x=random.randrange(games.screen.width),
y=10,
dy=1)
games.screen.add(new_rock)
def end_game(self):
end_message = games.Message(value = "Game Over",
size = 90,
color = color.red,
x = games.screen.width/2,
y = games.screen.height/2,
lifetime = 5 * games.screen.fps,
after_death = games.screen.quit)
games.screen.add(end_message)
def main():
wall_image = games.load_image("wall.jpg", transparent = False)
games.screen.background = wall_image
the_chef = Chef()
games.screen.add(the_chef)
rock_image=games.load_image("rock.bmp")
the_rock=Rock(image=rock_image,
x=random.randrange(games.screen.width),
y=10,
dy=1)
games.screen.add(the_rock)
games.mouse.is_visible = False
games.screen.event_grab = True
games.screen.mainloop()
main()
Ok, merci. Mon problème principal est que le jeu se termine une fois que le sprite frappe le fond de l'écran, ce que je ne le dis pas! – Jam
Parce que: def check_catch (auto): pour pizza dans self.overlapping_sprites: sinon self.bottom> jeux.screen.height: self.end_game() – ninMonkey