EDIT : RESOLU !!!
Salut !
dans pygame, je rame sur un truc :
je voudrais faire ceci :
[CODE]""" Pour une classe de vehicule j'ai deux types de tir, dés que l'un des deux est utilisé, le tir est bloqué et un délai est effectué, mais le missile peut continuer à se mouvoir, et dés que le délai est terminé, alors le tir est à nouveau autorisé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 # Tire avec l'arme indiquée. Cette fonction est lancée par le vehicule selon un hazard. def Tire(self, arme) : if arme == 1 and self.Tir1==self.Cadence1: self.Arme = 1 # sélectionne l'arme 1 # Crée 4 munitions for i in range(0,5) : self.Munitions.append(py.Rect(self.Rect.left+16,self.Rect.bottom,6,10)) elif arme == 2 and self.Tir2==self.Cadence2: self.Arme = 2 # sélectionne l'arme 2 # Crée un missile. self.Missiles.append(py.Rect(self.Rect.left+16,self.Rect.bottom,10,20))
Je précise que cette version ne fonctionne pas, car je n'ai jamais de tirs au final ! Alors que j'ai mis une condition au tir et qu'elle est sensée etre réalisée.
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 # Lancée par la boucle de jeu, cette fonction donne le mouvement aux missiles et munitions du vaisseau. def Mouv_tirs(self) : print("Tir1 :",self.Tir1," Cadence 1 :",self.Cadence1) if self.Arme == 1 and self.Tir1 > 0 : self.Tir1 -= 1 if self.Tir1 < 0 : self.Tir1 = self.Cadence1 elif self.Arme == 2 and self.Tir2 > 0 : self.Tir2 -= 1 if self.Tir2 < 0 : self.Tir2 = self.Cadence2 if len(self.Munitions) > 0 : # Il y a une ou des munitions dans le chargeur Munitions. self.Tir1=self.Cadence1 for munition in self.Munitions : etc...
Je comprend pourquoi c'est parce que le moment du tir qui dépend du hazard ne s'accorde pas avec la valeur self.Tir1 par exemple qui est continuellement décrémentée puis remise à son max.
Mais je sais pas comment faire pour régler ce problème !






Répondre avec citation









en bas de page… 

Partager