le jeu de graven, erreur ?
Bonjour je suit le cours de Graven , Créer un jeu en python (3/10) et la je calle sur un message d'erreur quand j'appuie sur la touche espace.
voici mon code:
main.py
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| import pygame
pygame.init()
from game import Game
#genere la fenetre du jeu
pygame.display.set_caption("premier jeu de alain")
screen = pygame.display.set_mode((1080, 720))
background = pygame.image.load("assets/bg.jpg")
game = Game()
running = True
#boucle d'execution
while running:
screen.blit(background, (0, -300))
screen.blit(game.player.image, game.player.rect)
# appliquer l'ensemble des images de mon groupe de projectiles
game.player.all_projectiles.draw(screen)
# verifier si le joueur souhaite aller a gauche ou a droite
if game.pressed.get(pygame.K_RIGHT) and game.player.rect.x + game.player.rect.width < 1080:
game.player.move_right()
elif game.pressed.get(pygame.K_LEFT) and game.player.rect.x > 0:
game.player.move_left()
pygame.display.flip()
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
pygame.quit()
#detecter si un joueur lache une touche du clavier
elif event.type == pygame.KEYDOWN:
#quel touche a ete
game.pressed[event.key] = True
#detecter si la touche espace est enclenché
if event.key == pygame.K_SPACE:
game.player.launch_projectile()
elif event.type == pygame.KEYUP:
game.pressed[event.key] = False |
game.py
Code:
1 2 3 4 5 6 7 8 9 10
| import pygame
from player import Player
class Game:
def __init__(self):
self.player = Player()
self.pressed = {
} |
player.py
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| import pygame
from projectile import Projectile
class Player(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.vie = 100
self.max_vie = 100
self.attaque = 10
self.velocite = 2
self.all_projectiles = pygame.sprite.Group()
self.image = pygame.image.load('assets/player.png')
self.rect = self.image.get_rect()
self.rect.x = 400
self.rect.y = 400
def launch_projectile(self):
self.all_projectiles.add(Projectile())
def move_right(self):
self.rect.x += self.velocite
def move_left(self):
self.rect.x -= self.velocite |
projectile.py
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| import pygame
#on vas definir la class projectile
class Projectile(pygame.sprite.Sprite):
def __init__(self, player):
super().__init__()
self.velocite = 5
self.image = pygame.image.load('assets/projectile.png')
self.image = pygame.transform.scale(self.image(50.50))
self.rect = self.image.get_rect()
self.rect.x = player.rect.x
self.rect.y = player.rect.y |