Итак, у меня есть небольшая игра, написанная на питоне, если вы видели мой предыдущий вопрос, вы знаете, что это клоун «космических захватчиков».random "ValueError: list.remove (x): x not in list" error in pygame
Так почти все работает гладко прямо сейчас, за исключением случайной ошибки, возникающей из-за времени. Это совершенно случайно, это может произойти после того, как были выпущены некоторые пули, или это может вообще не произойти.
У меня есть этот код:
for bullet in bullets:
bullet.attack()
if bullet.posy<=-20:
bullet_draw=False
if bullet_draw==True:
bullet.draw()
for enemy in enemies:
if bullet.sprite.rect.colliderect(enemy.sprite.rect):
enemy.health-=1
bullets.remove(bullet)
bullet_draw=False
else:
bullet_draw=True
Иногда он дает мне следующую ошибку.
Traceback (most recent call last):
File "\Programming\space invaders\space.py", line 280, in <module>
bullets.remove(bullet)
ValueError: list.remove(x): x not in list
Обратите внимание, что эта ошибка абсолютно случайна; даже если это не так, я не могу проследить его происхождение. Любая помощь в том, как его устранить?
В общем, поймать ошибку, а затем использовать посмертный отладчик ('import pdb; pdb.post_mortem()') - это хороший способ разобраться. Во время разработки у меня обычно есть пункт try-except try-except вокруг точки входа моей программы, так что я могу сразу отлаживать даже непредвиденные проблемы. –