У меня есть генетический алгоритм, который имитировал «Рыбу» в игровом пространстве сверху вниз.когда создается симуляция, половина созданий удаляется, а оставшаяся половина заполняет пустое население своим потомством (которое глубоко скопировано у пары родителей).
Эта система работала нормально, прежде чем интегрировать ее в Pygame.однако теперь я получаю сообщение об ошибке «pygame.error: display Surface quit».
, когда создается «Агент», также генерируются все их черты, включая их спрайты.Затем я сохраняю детали спрайта в кортеже, который нужно получить, когда мне нужно отобразить агента.
напечатанный кортеж выглядит так:
[<Surface(1152x48x32 SW)>, 48, 48, 24, 20]
#[loaded sprite, width,height,frames, current_frame]
Я подготовил детали спрайта длямои 12 агентов должны быть напечатаны в начале второго моделирования, что я получаю следующим образом:
[<Surface(1152x48x32 SW)>, 48, 48, 24, 20]
[<Surface(1152x48x32 SW)>, 48, 48, 24, 21]
[<Surface(Dead Display)>, 48, 48, 24, 20]
[<Surface(Dead Display)>, 48, 48, 24, 21]
[<Surface(1152x48x32 SW)>, 48, 48, 24, 19]
[<Surface(1152x48x32 SW)>, 48, 48, 24, 5]
[<Surface(Dead Display)>, 48, 48, 24, 19]
[<Surface(Dead Display)>, 48, 48, 24, 5]
[<Surface(1152x48x32 SW)>, 48, 48, 24, 7]
[<Surface(1152x48x32 SW)>, 48, 48, 24, 0]
[<Surface(Dead Display)>, 48, 48, 24, 7]
[<Surface(Dead Display)>, 48, 48, 24, 0]
Блоки деталей спрайта - это два родителя вверху, за которыми следуют два потомка ниже.
Полная ошибка выглядит следующим образом:
Traceback (most recent call last):
File "/home/christian/Desktop/Simulation Fish/main.py", line 32, in <module>
game_loop()
File "/home/christian/Desktop/Simulation Fish/main.py", line 20, in game_loop
fitnessLedger = test.run(agentLedger,foodLedger)
File "/home/christian/Desktop/Simulation Fish/_bin/test.py", line 11, in run
render(agentLedger,foodLedger)
File "/home/christian/Desktop/Simulation Fish/_bin/test.py", line 25, in render
gameDisplay.blit(i.sprite[0],(i.x-(i.sprite[1]/2),i.y-(i.sprite[2]/2)),(i.sprite[4]*i.sprite[1],0,i.sprite[1],i.sprite[2]))
pygame.error: display Surface quit
Кто-нибудь может объяснить, почему детали спрайта не копируются полностью?
любая помощь очень ценится.