Поскольку я еще новичок в программировании, я пытаюсь придумать некоторые базовые программы, чтобы помочь мне понять кодировку и узнать.Python: контроль скорости выполнения для цикла
Я пытаюсь создать объект, который стреляет маленькими частицами вверх, используя pygame. Все работает отлично, но я не могу найти способ контролировать скорость, с которой объекты создают эти частицы. У меня есть класс Launcher и Particle, а также списки пусковых установок и частиц. Вам нужны все линии программы? Вот основные настройки:
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()
я использовать мышь, чтобы добавить новые пусковые установки в массив и время цикла, чтобы вынести все. Как я уже сказал, я хотел бы найти способ контролировать скорость, с которой моя Launcher выплевывает эти частицы, пока программа все еще работает (поэтому sleep() не может работать)
Некоторые дальнейшего чтения, если вы заинтересованы в более сложных способов реализации вашей игровой цикл: www.koonsolo.com/news/dewitters-gameloop/ – Matt
прекрасно работает! Каждая частица может иметь свой собственный «last_released_time», огромное спасибо, это прекрасно! –