Partage
  • Partager sur Facebook
  • Partager sur Twitter

[HELP] Pygame !

Pygame

    15 février 2017 à 11:49:32

    Bonjour, 

    Je suis actuellement en pleine programmation d'un jeux en python pour mes cours. 

    TOPO sur le jeux : 

    C'est un simple beat them up, où le joueur est un vaisseau qui doit détruire le maximum d'astéroïde en  25 sec ! 

    bref , 

    Mon problème : 

    Je dois généré des astéroïde aléatoirement, du coup j'utilise la fonction randrange de random à ce niveau là pas de problème. Mon soucis est que parfois les astéroïde se génèrent les un sur les autres (cf screen) 

    J'aurais aimé avoir genre quelques pixel d'écart entre les astéroïde histoire que ça ne fasse pas cochon ..

    voici le bout de code qui les génèrent :

    class Asteroid(pygame.sprite.Sprite):
        def __init__(self):
            super().__init__()
            self.image = pygame.image.load('mine.png').convert_alpha()
            self.rect = self.image.get_rect()
    
        def update(self):
            self.rect.x -= 1
    
    
    for i in range(10):
        asteroid = Asteroid()
        asteroid.rect.x = random.randrange(800,1000)
        asteroid.rect.y = random.randrange(100,400)
        asteroid_list.add(asteroid)
        sprites_list.add(asteroid)
    

     Merci à vous :) 

    • Partager sur Facebook
    • Partager sur Twitter
      15 février 2017 à 12:54:40

      Bonjour,
      Il faut que tu fasses une "liste" avec tous tes objets Asteroid contenant leurs coordonnées en x et en y.

      Et comme ça après le randrange tu fais une boucle for sur la lite contenant les objets déjà existant et tu testes si la distance du nouvel Asteroid est supérieur à une certaine distance D de tous les autres Asteroid si ce n'est pas le cas tu rappelles randrange afin d'avoir des nouvelles coordonnées. 

      Je pense que c'est le plus simple. :p

      • Partager sur Facebook
      • Partager sur Twitter
        15 février 2017 à 13:05:35


        Dac la logique y est,   je test cela cette après-midi merci.  

        :) 


        RerePhP a écrit:

        Bonjour,
        Il faut que tu fasses une "liste" avec tous tes objets Asteroid contenant leurs coordonnées en x et en y.

        Et comme ça après le randrange tu fais une boucle for sur la lite contenant les objets déjà existant et tu testes si la distance du nouvel Asteroid est supérieur à une certaine distance D de tous les autres Asteroid si ce n'est pas le cas tu rappelles randrange afin d'avoir des nouvelles coordonnées. 

        Je pense que c'est le plus simple. :p



        • Partager sur Facebook
        • Partager sur Twitter

        [HELP] 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