bonjour j'ai un probleme avec mon code voici l'error
Traceback (most recent call last):
File "C:\Users\droop\PycharmProjects\Game v 1.0\main.py", line 43, in <module>
game.all_monster.draw(screen)
TypeError: AbstractGroup.draw() missing 1 required positional argument: 'surface'
merci d'avance
fichier main.py
import pygame
from self import self
from game import Game
from player import Player
from projectile import Projectile
pygame.init()
#generer le fenettre du jeux
pygame.display.set_caption("the Survival")
screen = pygame.display.set_mode((1700, 1080))
# importer de charger l'arriere plan
background = pygame.image.load("assets/bg.jpg")
# charger notre jeux
game = Game()
# charger notre joueur
player = Player()
running = True
#Boucle tant que que cette ccondition est vrai
while running:
# appliquer l'arriere plan de notre jeu
screen.blit(background, (0, 0))
# appliquer l immage de mon joueur
screen.blit(game.player.image, game.player.rect)
for projectile in game.player.all_projectiles:
projectile.move()
# appliquer l'ensemble des images de mon groupe de projectile
game.player.all_projectiles.draw(screen)
game.all_monster.draw(screen)
# verifier si le joueur souhaite aller a gauche ou a droite
if game.pressed.get(pygame.K_RIGHT):
game.player.move_right()
elif game.pressed.get(pygame.K_LEFT) and game.player.rect.x > 0:
game.player.move_left()
# mettre a jour l'écran
pygame.display.flip()
#si le joueur ferme cette fenetre
for event in pygame.event.get():
#que l'evenement est fermeture de fenetre
if event.type == pygame.QUIT:
running = False
pygame.quit()
print("fermeture du jeux")
# detecter si un joueur lache une touche du clavier
elif event.type == pygame.KEYDOWN:
game.pressed[event.key] = True
# detecter si le touche espace est enclencher pour lancer projectile
if event.key == pygame.K_SPACE:
game.player.launch_projectile()
elif event.type == pygame.KEYUP:
game.pressed[event.key] = False
fichier game.py
import pygame.sprite
from monster import Monster
from player import Player
class Game:
def __init__(self):
# def si notre jeux a commencer ou non
self.is_playing = False
self.player = Player()
self.all_monster = pygame.sprite.Group
self.pressed = {}
self.spawn_monster()
def spawn_monster(self):
monster = Monster
self.all_monster.add(monster)
def update(self):
# mettre a jour l'écran
pygame.display.flip()
# si le joueur ferme cette fenetre
for event in pygame.event.get():
# que l'evenement est fermeture de fenetre
if event.type == pygame.QUIT:
running = False
pygame.quit()
print("fermeture du jeux")
# detecter si un joueur lache une touche du clavier
elif event.type == pygame.KEYDOWN:
self.pressed[event.key] = True
# detecter si le touche espace est enclencher pour lancer projectile
if event.key == pygame.K_SPACE:
self.player.launch_projectile()
elif event.type == pygame.KEYUP:
self.pressed[event.key] = False
fichier player.py
import pygame
from projectile import Projectile
class Player(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.health = 100
self.max_health = 100
self.attack = 10
self.velocity = 5
self.all_projectiles = pygame.sprite.Group()
self.image = pygame.image.load('assets\player.png')
self.rect = self.image.get_rect()
self.rect.x = 850
self.rect.y = 700
def launch_projectile(self):
# cree une nouvelle instance de la classe projectile
self.all_projectiles.add(Projectile(self))
def move_right(self):
self.rect.x += self.velocity
def move_left(self):
self.rect.x -= self.velocity
Les doublons nuisent au bon fonctionnement du forum et sont donc interdits. Si vous vous êtes trompé de section, il suffit de signaler votre sujet au staff pour qu'il le déplace au bon endroit.
Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.
Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).
De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.
Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.
Pour modifier votre titre, éditez le premier message de votre sujet.
(titre originel : pygame error python)
Je ferme ce sujet. En cas de désaccord, me contacter par MP.