Пигмей игра "Dead Display" - PullRequest
0 голосов
/ 27 мая 2019

У меня есть генетический алгоритм, который имитировал «Рыбу» в игровом пространстве сверху вниз.когда создается симуляция, половина созданий удаляется, а оставшаяся половина заполняет пустое население своим потомством (которое глубоко скопировано у пары родителей).

Эта система работала нормально, прежде чем интегрировать ее в 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

Кто-нибудь может объяснить, почему детали спрайта не копируются полностью?

любая помощь очень ценится.

...