Bonjour ! J'ai un problème: je crée un système de scrolling sur mon rpg fait avec pygame mais le joueur va plus vite que le scroll C'est un problème :p ... Donc je suis là pour vous poser cette question savez-vous comment résoudre le problème?
Merci d'avance pour vos réponses !
main.py
level.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
47
48
49
50
51
52
53
54
55
56 import pygame from game import Game from level import * pygame.init() lvl = Level() screen = pygame.display.set_mode((1024, 768)) pygame.display.set_caption("RPG") game = Game() cam = Camera(1024, 768) running = True lvl.generer() print(game.player.rect) clock = pygame.time.Clock() lvl.afficher(screen, 0, 0, cam.rect.x, cam.rect.y) while running: cam.update(game.player) #print(cam.rect.topleft) if game.pressed.get(pygame.K_RIGHT): game.player.move_right() lvl.afficher(screen, 0, 0, cam.rect.x, cam.rect.y) #print(game.player.rect.x) elif game.pressed.get(pygame.K_LEFT): game.player.move_left() lvl.afficher(screen, 0, 0, cam.rect.x, cam.rect.y) #print(game.player.rect.x) elif game.pressed.get(pygame.K_DOWN): game.player.move_down() lvl.afficher(screen, 0, 0, cam.rect.x, cam.rect.y) #print(game.player.rect.y) elif game.pressed.get(pygame.K_UP): game.player.move_up() lvl.afficher(screen, 0, 0, cam.rect.x, cam.rect.y) #print(game.player.rect.y) #print(cam.rect.x, cam.rect.y) #print(cam.rect) 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() elif event.type == pygame.KEYDOWN: game.pressed[event.key] = True 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
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
47
48
49
50
51
52
53
54
55
56 import pygame from game import Game from level import * pygame.init() lvl = Level() screen = pygame.display.set_mode((1024, 768)) pygame.display.set_caption("RPG") game = Game() cam = Camera(1024, 768) running = True lvl.generer() print(game.player.rect) clock = pygame.time.Clock() lvl.afficher(screen, 0, 0, cam.rect.x, cam.rect.y) while running: cam.update(game.player) #print(cam.rect.topleft) if game.pressed.get(pygame.K_RIGHT): game.player.move_right() lvl.afficher(screen, 0, 0, cam.rect.x, cam.rect.y) #print(game.player.rect.x) elif game.pressed.get(pygame.K_LEFT): game.player.move_left() lvl.afficher(screen, 0, 0, cam.rect.x, cam.rect.y) #print(game.player.rect.x) elif game.pressed.get(pygame.K_DOWN): game.player.move_down() lvl.afficher(screen, 0, 0, cam.rect.x, cam.rect.y) #print(game.player.rect.y) elif game.pressed.get(pygame.K_UP): game.player.move_up() lvl.afficher(screen, 0, 0, cam.rect.x, cam.rect.y) #print(game.player.rect.y) #print(cam.rect.x, cam.rect.y) #print(cam.rect) 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() elif event.type == pygame.KEYDOWN: game.pressed[event.key] = True elif event.type == pygame.KEYUP: game.pressed[event.key] = False
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 import pygame from level import Camera class Player(pygame.sprite.Sprite): def __init__(self, game): super(Player, self).__init__() self.game = game self.health = 100 self.maxHealth = 100 self.attack = 10 self.velocity = 7 self.dimension = (64, 88) self.image = pygame.image.load("assets/player/player_face/player_face.png") self.original_image = pygame.image.load("assets/player/player_face/player_face.png") self.image = pygame.transform.scale(self.image, self.dimension) self.rect = self.image.get_rect() self.rect.x = 512 self.rect.y = 384 def move_right(self): self.rect.x += self.velocity self.image = pygame.image.load("assets/player/player_profileLeft/player_profile_left.png") self.image = pygame.transform.scale(self.image, self.dimension) def move_left(self): self.rect.x -= self.velocity self.image = pygame.image.load("assets/player/player_profileRight/player_profile_right.png") self.image = pygame.transform.scale(self.image, self.dimension) def move_down(self): self.rect.y += self.velocity self.image = pygame.image.load("assets/player/player_face/player_face.png") self.image = pygame.transform.scale(self.image, self.dimension) def move_up(self): self.rect.y -= self.velocity self.image = pygame.image.load("assets/player/player_back/player_dos.png") self.image = pygame.transform.scale(self.image, self.dimension)
Partager