Мы с моим другом работали над большим проектом, чтобы учиться и веселиться в python и PyGame. В основном это симуляция AI маленькой деревни. мы хотели провести день/ночь, поэтому я нашел аккуратный способ изменить цвет всей поверхности с помощью numpy (в частности, кросс-увядающего учебника) - http://www.pygame.org/docs/tut/surfarray/SurfarrayIntro.html
Я реализовал его в коде, и он РАБОТАЕТ, но очень медленный, например < 1 fps медленно. поэтому я смотрю на threading (потому что я хотел добавить его в конце концов) и нашел эту страницу в Queues - Изучение модуля Queue в python (как его запустить)
Я трачу около 15 минут на создание базовой системы, но как только я запускаю ее, окно закрывается, и он говорит
Exception in thread Thread-1 (most likely raised during interpreter shutdown):
EDIT: это буквально все, что сказано, отсутствие ошибки Traceback
Я не знаю, что я делаю неправильно, но я полагаю, что я пропустил что-то простое. Я добавил необходимые части кода ниже.
q_in = Queue.Queue(maxsize=0)
q_out = Queue.Queue(maxsize=0)
def run(): #Here is where the main stuff happens
#There is more here I am just showing the essential parts
while True:
a = abs(abs(world.degree-180)-180)/400.
#Process world
world.process(time_passed_seconds)
blank_surface = pygame.Surface(SCREEN_SIZE)
world.render(blank_surface) #The world class renders everything onto a blank surface
q_in.put((blank_surface, a))
screen.blit(q_out.get(), (0,0))
def DayNight():
while True:
blank_surface, a = q_in.get()
imgarray = surfarray.array3d(blank_surface) # Here is where the new numpy stuff starts (AKA Day/Night cycle)
src = N.array(imgarray)
dest = N.zeros(imgarray.shape)
dest[:] = 20, 30, 120
diff = (dest - src) * a
xfade = src + diff.astype(N.int)
surfarray.blit_array(blank_surface, xfade)
q_out.put(blank_surface)
q_in.task_done()
def main():
MainT = threading.Thread(target=run)
MainT.daemon = True
MainT.start()
DN = threading.Thread(target=DayNight)
DN.daemon = True
DN.start()
q_in.join()
q_out.join()
Если кто-то может помочь, это было бы очень признательно. Спасибо.