Bug sur pygame
NASSIM_BERKHLI
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
Phil_1857 Messages postés 1872 Date d'inscription Statut Membre Dernière intervention -
Phil_1857 Messages postés 1872 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
vous pouvez débugger mon programme s'il vous plait.
Pour faire court, je ne peux pas appeler mon objet projectile.
Si vous voulez je peux vous envoyer les images en png par mail.
merci de votre aide
EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d'y penser dans tes prochains messages.
vous pouvez débugger mon programme s'il vous plait.
Pour faire court, je ne peux pas appeler mon objet projectile.
Si vous voulez je peux vous envoyer les images en png par mail.
merci de votre aide
# initialisation du module pygame import pygame pygame.init() #------------------------------------------------------------------------------- # classe qui va définir le jeu class Game : def __init__(self): # générer le personnage self.player = Player() self.pressed = {} #------------------------------------------------------------------------------- # classe qui va définir le personnage principale class Player(pygame.sprite.Sprite) : def __init__(self) : super().__init__() # paramètre du personnage self.barre_vie = 100 self.barre_vie_max = 100 self.attaque = 10 self.vitesse = 3 # face graphique du personnage self.image = pygame.image.load("personnage.png") # taille du personnage self.image = pygame.transform.scale(self.image, (60, 60)) # groupe de projectile self.all_projectile = pygame.sprite.Group() # coordonnée du personnage (sans cela le personnage ne pourra pas se déplacer) self.deplacement = self.image.get_rect() # positionnement du personnage self.deplacement.x = 500 self.deplacement.y = 600 # méthode qui permet de ranger le projecile dans le groupe all_projectile (plus haut) def lancer(self) : self.all_projectile.add(Projectile(self)) # méthode qui permet le déplacement du personnage def move_right(self) : self.deplacement.x += self.vitesse def move_left(self) : self.deplacement.x -= self.vitesse #------------------------------------------------------------------------------- # classe qui va définir les projectiles class Projectile(pygame.sprite.Sprite) : def __init__(self, player) : super().__init__() self.vitesse = 6 self.image = pygame.image.load("projectile.png") self.image = pygame.transform.scale(self.image, (266,133)) self.rect = self.image.get_rect() self.rect.x = player.deplacement.x - 35 self.rect.y = player.deplacement.y + 10 def move(self) : self.rect.x = self.rect.x + self.vitesse #------------------------------------------------------------------------------- # initialisation de la fenêtre screen = pygame.display.set_mode((1080, 720)) # création du fond d'écran du jeu fond_ecran = pygame.image.load("fond.png") fond_ecran = pygame.transform.scale(fond_ecran, (1080, 720)) # charger le jeu game = Game() #------------------------------------------------------------------------------- continu = True while True: #------------------------------------------------------------------------------- # applique le fond d'écran sur le jeu screen.blit(fond_ecran, (0, 0)) # applique l'image du personnage screen.blit(game.player.image, game.player.deplacement) # mouvement des projectiles for Projectile in game.player.all_projectile : Projectile.move() if Projectile.rect.x > 300 : game.player.all_projectile.remove(Projectile) # applique l'ensemble des images de mon groupe de projectiles game.player.all_projectile.draw(screen) # vérifie si le personnage va à droite ou à gauche if game.pressed.get(pygame.K_RIGHT) and game.player.deplacement.x <= 1026 : game.player.move_right() elif game.pressed.get(pygame.K_LEFT) and game.player.deplacement.x >= -2 : game.player.move_left() #------------------------------------------------------------------------------- # met à jour l'écran pygame.display.flip() #------------------------------------------------------------------------------- # lorsque l'utilisateur quitte la fenêtre for event in pygame.event.get() : if event.type == pygame.QUIT : continu = False pygame.quit() #------------------------------------------------------------------------------- # lorsque le joueur touche une touche du clavier elif event.type == pygame.KEYDOWN : game.pressed[event.key] = True # lorsque le joueur touche sur w if event.key == pygame.K_z: game.player.lancer() elif event.type == pygame.KEYUP : game.pressed[event.key] = False
EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d'y penser dans tes prochains messages.
4 réponses
Bonjour Nassim,
L'indentation étant importante en Python, merci de copier/coller ici ton code avec les balises de code
mode d'emploi:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Visuellement, ça doit ressembler à ceci (avec la coloration syntaxique) :
L'indentation étant importante en Python, merci de copier/coller ici ton code avec les balises de code
mode d'emploi:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Visuellement, ça doit ressembler à ceci (avec la coloration syntaxique) :
def test(): print('test') test()
Même en lisant la page du lien que je t'ai donné ?
C'est pourtant simple
On fait un copier/coller du code dans le message
On sélectionne le code à la souris, on déroule la liste avec la petite flèche noire dans le menu
en haut et on choisi Python
Apres validation du message, le code ressemble à mon exemple ci-dessus ...
C'est pourtant simple
On fait un copier/coller du code dans le message
On sélectionne le code à la souris, on déroule la liste avec la petite flèche noire dans le menu
en haut et on choisi Python
Apres validation du message, le code ressemble à mon exemple ci-dessus ...