Pages : 1
#1 Le 18/05/2023, à 16:10
- chris7522
random.randrange (python)
Bonjour a toutes et a tous ,
J'ai une classe qui fonctionne correctement et me permet de créer une catégorie d'ennemi :
class enemyAlien: # personnage alien
def __init__(self, img):
self.image = pygame.image.load(img)
self.image = pygame.transform.scale(self.image, (100, 100))
self.rect = self.image.get_rect()
self.rect.x = random.randrange(1800, 40000)
self.rect.y = random.randrange(0, 850)
self.health = set.alien_health
self.hitbox = (self.rect.x, self.rect.y, self.image.get_width(),
self.image.get_height())
self.vel = set.alienvelocity
self.visible = True
self.lasercount = 0
...
Et plus loin j'ai :
elif levelcounter == 6:
spawnaliens = True
powers(win, powerups)
if spawnaliens:
for i in range(0, 30):
img = random.choice(aliens_img)
aliens.append(enemyAlien(img))
Mes Aliens viennent donc de la droite vers la gauche . J'aimerai qu'ils partent de la gauche vers la droite , j'ai fait ca , mais ca ne fonctionne pas :
self.rect.x = random.randrange(-1000, -50)
self.rect.y = random.randrange(500, 700)
Aucun aliens apparait !
Comment pourrai je faire ?
Dernière modification par chris7522 (Le 18/05/2023, à 16:11)
Hors ligne
#2 Le 18/05/2023, à 16:44
- Vobul
Re : random.randrange (python)
-randrange(50, 1000)
Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM
Hors ligne
#3 Le 18/05/2023, à 20:37
- chris7522
Re : random.randrange (python)
Bonjour Vobul ,
Merci de ton aide .
Je n'ai pas compris ta réponse , que dois je faire exactement ?
Il faudrai que mes aliens soient crée en dehors de ma fenetre , pas au meme coordonnées x pour qu'ils n'apparaissent pas dans la fenetre au meme moment et qu'ils avancent de gauche a droite .
Hors ligne
#4 Le 18/05/2023, à 21:44
- Vobul
Re : random.randrange (python)
Tu prends un nombre entre 50 et 1000 et tu le rends négatif, au lieu de prendre un nombre entre -1000 et -50.
Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM
Hors ligne
#5 Le 18/05/2023, à 21:58
- iznobe
Re : random.randrange (python)
Bonsoir si j' ai bien compris la réponse de @vobul tu remplaces :
self.rect.x = random.randrange(-1000, -50)
par :
self.rect.x = random.-randrange(50, 1000)
enfin un truc approchant du moins .
Dernière modification par iznobe (Le 18/05/2023, à 21:59)
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#6 Le 18/05/2023, à 22:24
- Watael
Re : random.randrange (python)
Tu prends un nombre entre 50 et 1000 et tu le rends négatif, au lieu de prendre un nombre entre -1000 et -50.
quand je fais quelques tirages, je ne vois pas de différence.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#7 Le 18/05/2023, à 23:04
- Vobul
Re : random.randrange (python)
quand je fais quelques tirages, je ne vois pas de différence.
En fait j'ai juste assumé présumé que randrange() ne prenait pas de nombres négatifs en arguments. J'ai donc mal compris le problème.
Dernière modification par Vobul (Le 19/05/2023, à 02:00)
Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM
Hors ligne
#8 Le 19/05/2023, à 00:48
- Watael
Re : random.randrange (python)
petit point lexicographique :
j'ai juste assumé présumé
"assumer", c'est prendre à son compte, à sa charge.
la manière dont tu l'emploies ici est un anglicisme.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#9 Le 19/05/2023, à 01:59
- Vobul
Re : random.randrange (python)
la manière dont tu l'emploies ici est un anglicisme.
Pas étonnant vu le temps que je passe à lire, écrire et parler anglais. example, language, etc... Merci de l'avoir relevé en tout cas !
Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM
Hors ligne
#10 Le 19/05/2023, à 08:49
- Nuliel
Re : random.randrange (python)
Bonsoir si j' ai bien compris la réponse de @vobul tu remplaces :
self.rect.x = random.randrange(-1000, -50)
par :
self.rect.x = random.-randrange(50, 1000)
enfin un truc approchant du moins .
Bonjour,
Non, ce que propose Vobul, c'est
self.rect.x = - random.randrange(50, 1000)
qui effectivement fonctionne. Si tu voulais garder les paramètres négatifs, il faut renseigner le step à -1 (car tu descends pour aller de -50 à -1000):
random.randrange(-50, -1000, -1)
En lisant la doc, on voit que ça utilise range(start, stop, step) en interne, qui va de start inclus à stop exclus. Donc si tu veux prendre -1000, il faudra choisir entre:
random.randint(-1000, -50) # le plus simple
random.randrange(-50, -1001, -1)
- random.randrange(50, 1001)
Référence: https://docs.python.org/3/library/rando … .randrange
Dernière modification par Nuliel (Le 19/05/2023, à 08:56)
Hors ligne
#11 Le 19/05/2023, à 15:09
- chris7522
Re : random.randrange (python)
Je vous remercie beaucoup de votre aide . Cependant , dans mon code , aucun n'a fonctionné . Rien n'apparait a l'écran avec:
random.randint(-1000, -50) # le plus simple
random.randrange(-50, -1001, -1)
- random.randrange(50, 1001)
J'ai éssayé ca mais pas mieux :
self.rect.x = -random.choice([-1000, -50, 0])
En faisant ca , évidemment ca fonctionne a tous les coups , preuve que par ailleurs ca roule :
self.rect.x = 0
Mais ce n'est pas ce que je recherche puisqu'ils arrivent au meme coordonnées x
Hors ligne
#12 Le 20/05/2023, à 10:23
- Nuliel
Re : random.randrange (python)
Désolé, je pensais que le problème venait d'un mauvais appel à randrange, mais ce n'est visiblement pas le cas.
Je n'ai pas forcément d'idée pour résoudre le problème que tu rencontres, mais je penses qu'il serait bien que tu commences par fixer une position de départ avant de chercher à utiliser randrange, histoire d'être sûr que tu crées pas le personnage très très loin (et qu'il va mettre 2h à rentrer dans la zone affichée)
Dernière modification par Nuliel (Le 20/05/2023, à 10:23)
Hors ligne
#13 Le 20/05/2023, à 18:03
- Compte supprimé
Re : random.randrange (python)
Bonjour,
sel.hitbox représente la boîte englobante de ton image? Si oui elle n'est pas bien définie...
Pages : 1