Partage
  • Partager sur Facebook
  • Partager sur Twitter

Python : projectile pygame

affichage projectile

    31 août 2023 à 13:32:25

    main.py

    import pygame
    from pygame.locals import *
    from game import Game
    # from projectile import Projectile
    from player import Player
    
    # SETTINGS
    pygame.init()
    
    pygame.display.set_caption("mmorpg")
    screen = pygame.display.set_mode((1080, 720))
    background = pygame.image.load("PygameAssets-main/bg.jpg")
    
    game = Game()
    runnning = True
    
    while runnning:
    
        # game window
        screen.blit(background, (0, -200))
    
        # player image
        screen.blit(game.player.image, game.player.rect)
    
        game.player.all_projectiles.draw(screen)
        # print(game.pressed)
    
        # player move
        if game.pressed.get(pygame.K_RIGHT) and game.player.rect.x + game.player.rect.width < screen.get_width():
            game.player.move_right()
        elif game.pressed.get(pygame.K_LEFT) and game.player.rect.x > 0:
            game.player.move_left()
    
        print(game.player.rect.x)
    
        # screen update
        pygame.display.flip()
        for event in pygame.event.get():
            # close the game
            if event.type == pygame.QUIT:
                running = False
                pygame.quit()
                print("fermeture du jeu")
            # key pressed?
            elif event.type == pygame.KEYDOWN:
                game.pressed[event.key] = True
                # space pressed?
                if event.key == pygame.K_SPACE:
                    game.player.launch_projectile()
    
            elif event.type == pygame.KEYUP:
                game.pressed[event.key] = False
     

    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("PygameAssets-main/player.png")
          self.rect = self.image.get_rect()
          self.rect.x = 400
          self.rect.y = 500
    
      def launch_projectile(self):
          #projectile class
          self.all_projectiles.add(Projectile(self))
    
      #move right
      def move_right(self):
          self.rect.x += self.velocity
    
      #move left
      def move_left(self):
          self.rect.x -= self.velocity
     

    game.py

    import pygame
    from player import Player
    
    class Game:
        def __init__(self):
            self.player = Player()
            self.pressed = {}
     

    projectile.py

    import pygame
    
    #define projectile class
    class Projectile(pygame.sprite.Sprite):
        #constructor
        def __init__(self, player):
            super().__init__()
            self.velocity = 5
            self.image = pygame.image.load("PygameAssets-main/projectile.png")
            self.image = pygame.transform.scale(self.image, (50, 50))
            self.rect = self.image.get_rect()
            self.rect.x = player.rect.x + 120
            self.rect.y = player.rect.y + 80
     

    Bonjour, je commence dans l'apprentissage de pygame et je regarde des tutos, mais j'ai un probleme :

    Lorsque que j'appuie sur espace le projectile ne s'affiche pas pourtant aucune erreur n'est déclarée. Pouvez vous m'aider svp?

    -
    Edité par DT.py 31 août 2023 à 21:00:59

    • Partager sur Facebook
    • Partager sur Twitter
      31 août 2023 à 14:41:50

      Vu les défauts dans l'indentation du code, si on le recopie, il y aura plein d'erreurs...

      -
      Edité par mps 31 août 2023 à 14:42:06

      • Partager sur Facebook
      • Partager sur Twitter
        31 août 2023 à 15:30:43

        Bonjour, je sort ce sujet des spams, si cela arrive encore vous pouvez poster dans ce sujet Si votre message est considéré comme spam

        • Partager sur Facebook
        • Partager sur Twitter
          31 août 2023 à 21:55:51

          Sinon avez vous trouvé le problème svp ?
          • Partager sur Facebook
          • Partager sur Twitter

          Python : projectile pygame

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown