IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation multimédia/Jeux Python Discussion :

Scrolling avec pygame: le scroll va plus lentement que le héros


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Programmeur pour le loisir
    Inscrit en
    Avril 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Programmeur pour le loisir

    Informations forums :
    Inscription : Avril 2020
    Messages : 1
    Points : 0
    Points
    0
    Par défaut Scrolling avec pygame: le scroll va plus lentement que le héros
    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
    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
    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
    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)

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Dans le cas du forum, le mieux est de partager un zip, que l'on puisse essayer chez nous le projet.
    Autrement, une capture nous permettrai de mieux voir le problème.
    Finalement, je vous conseille de vous inspirer de cet article, expliquant comment organiser le programme de son jeu.
    Au vu de cette ligne cam.update(game.player) je ne vois pas pourquoi la caméra irai plus lentement.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. Scrolling avec pygame
    Par linkartoon dans le forum Programmation multimédia/Jeux
    Réponses: 3
    Dernier message: 27/04/2017, 20h35
  2. creer une list avec scroll si plus de 50 elem
    Par elekis dans le forum SWT/JFace
    Réponses: 3
    Dernier message: 28/01/2010, 12h04
  3. La molette ne fait plus ce que je veux avec Firefox
    Par ggnore dans le forum Applications et environnements graphiques
    Réponses: 5
    Dernier message: 21/02/2006, 16h33
  4. Réponses: 9
    Dernier message: 29/10/2005, 20h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo