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
game.py
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
player.py
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 = { }
projectile.py
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager