Comme je suis encore novice en programmation, j'essaie de trouver des programmes de base simplement pour m'aider à comprendre le codage et à apprendre. J'essaie de créer un objet qui pousse de petites particules vers le haut en utilisant pygame. Tout fonctionne bien, mais je ne peux pas trouver un moyen de contrôler la vitesse à laquelle les objets créent ces particules. J'ai une classe Lanceur et Particule, et une liste de lanceurs et de particules. Avez-vous besoin de toutes les lignes du programme? Voici la configuration de base:Python: Contrôler une vitesse d'exécution «en boucle»
particles = []
launchers = []
class Particle:
def __init__(self, x, y):
self.pos = np.array([x, y])
self.vel = np.array([0.0, -15])
self.acc = np.array([0.0, -0.5])
self.colors = white
self.size = 1
def renderParticle(self):
self.pos += self.vel
self.vel += self.acc
pygame.draw.circle(mainscreen, self.colors, [int(particles[i].pos[0]), int(particles[i].pos[1])], self.size, 0)
class Launcher:
def __init__(self, x):
self.width = 10
self.height = 23
self.ypos = winHeight - self.height
self.xpos = x
def drawLauncher(self):
pygame.draw.rect(mainscreen, white, (self.xpos, self.ypos, self.width, self.height))
def addParticle(self):
particles.append(Particle(self.xpos + self.width/2, self.ypos))
while True :
for i in range(0, len(launchers)):
launchers[i].drawLauncher()
launchers[i].addParticle()
# threading.Timer(1, launchers[i].addparticle()).start()
# I tried that thinking it could work to at least slow down the rate of fire, it didn't
for i in range(0, len(particles)):
particles[i].renderParticle()
J'utilise la souris pour ajouter de nouveaux lanceurs au tableau et la boucle while pour rendre tout. Comme je l'ai dit, je voudrais trouver un moyen de contrôler la vitesse à laquelle mon lanceur cracher ces particules, alors que le programme est toujours en cours d'exécution (donc sleep() ne peut pas fonctionner)
Certains autres lectures si vous êtes intéressé par des moyens plus complexes de la mise en œuvre de votre boucle de jeu: www.koonsolo.com/news/dewitters-gameloop/ – Matt
fonctionne à merveille! Chaque particule peut avoir son propre "last_released_time", merci beaucoup, c'est parfait! –