Problème avec pygame

Résolu/Fermé
leblogueur - 25 août 2020 à 14:31
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 26 août 2020 à 15:48
Bonjour,
je suis un tutoriel pour m’entraîner a programmer (https://www.youtube.com/watch?v=8J8wWxbAdFg
et je reçois un message d'erreur alors que j'ai suivis le tutoriel a la ligne prêt je ne comprend pas ,sa un rapport avec pygame mais j'ai vérifier il est bien installer.
(je suis sur python 3.8.5 et je code sur pycharm)
le code:
import pygame
import pygame as pygame
pygame.init()


class Player(pygame.sprite.Sprite):

    def __init__(self):
        self.health = 100
        self.max_health = 100
        self.attack = 10
        self.velocity = 5
        self.image = pygame.image.load('assets/player.png')
        self.rect = self.image.get_rect()

pygame.display.set_caption("Comet fall Game")
screen = pygame.display.set_mode((1080, 720))


background = pygame.image.load('assets/bg.jpg')


player = Player


running = True


while running:


    screen.blit(background, (0, -200))


       pygame.display.flip()


   for event in pygame.event.get():

       if event.type == pygame.QUIT:
           running = False
           pygame.quit()
           print("Fermeture du jeu")




Configuration: Windows / Chrome 84.0.4147.135
A voir également:

9 réponses

quent217 Messages postés 421 Date d'inscription vendredi 25 septembre 2015 Statut Membre Dernière intervention 1 mars 2024 344
25 août 2020 à 15:33
Bonjour,
pouvez-vous nous donner l'erreur que vous obtenez ?
0
voici l'erreur:
pygame.display.flip()
^
IndentationError: unexpected indent
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
Modifié le 25 août 2020 à 16:07
Bonjour,

effectivement cette ligne devrait être alignée sur la précédente, or elle est encore décalée d'une indentation !
0
merci mais maintenant j'ai une autre erreur:
for event in pygame.event.get()
^
IndentationError: unindent does not match any outer indentation level
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
quent217 Messages postés 421 Date d'inscription vendredi 25 septembre 2015 Statut Membre Dernière intervention 1 mars 2024 344
25 août 2020 à 17:16
Vous avez cette erreur parce qu'il n'y a que 3 espaces devant cette ligne alors qu'il y en a 4 pour les lignes précédentes. Vous devriez avoir des problèmes similaires avec les lignes suivantes.

Les indentations ont une signification particulièrement importante en python donc faites bien attention à ne pas indenter n'importe comment.
0
merci beaucoup
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
25 août 2020 à 17:22
Contrôle un peu ce que tu fait au niveau des indentations !

Elles sont toutes de 4 espaces sauf devant cette ligne où il n'y en n'a que 3

Je ne sais pas quel éditeur de texte tu utilises, mais moi, lorsque j'indente une ligne et que

je passe a la ligne suivante avec ma touche entrée, l'indentation se reproduit automatiquement

le curseur s'aligne exactement avec la ligne que je viens d'écrire

(on se demande pourquoi tu mets toutes ces lignes vides entre 2 instructions, d'ailleurs)
0
j'ai re-de nouveau une erreur sur mon programe que je ne comprend pas
moncode:
premier dossier qui s'appel main.py
import pygame
import pygame as pygame
from game import Game
pygame.init()






pygame.display.set_caption("Comet fall Game")
screen = pygame.display.set_mode((1080, 720))


background = pygame.image.load('assets/bg.jpg')

game = Game()

player = Player()

running = True


while running:


    screen.blit(background, (0, -200))

    screen.blit(game.player.image, game.player.rect)

    pygame.display.flip()


    for event in pygame.event.get():

       if event.type == pygame.QUIT:
           running = False
           pygame.quit()
           print("Fermeture du jeu")

deuxième dossier qui s'appele game.py
import pygame

from player import Player
class Game:

    def __init__(self):
        self.player = Player()

troisieme partit qui s'appèlent player.py
import pygame

class Player(pygame.sprite.Sprite):

    def __init__(self):
        super().__init__()
        self.health = 100
        self.max_health = 100
        self.attack = 10
        self.velocity = 5
        self.image = pygame.image.load('assets/player.png')
        self.rect = self.image.get_rect()
        self.rect.x = 400
        self.rect.y = 500

mon message d'erreur:
    player = Player()
NameError: name 'Player' is not defined
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
Modifié le 26 août 2020 à 15:49
Tu parles de 'dossiers', mais ce sont des fichiers Python

Dans main.py, la classe Player est inconnue

Il faut plutôt écrire au début de main.py :

from game import *


pour ne pas importer que la classe Game qui est dans game.py, mais aussi prendre en compte

from player import Player


qui y est écrit, et là, ca fonctionne ...
0