每当我拍摄sprite时,我都希望能够将它从屏幕上移除,但只能在半秒后(或其他任意时间段)移除。但我不想调查睡眠等待这段时间结束。Pygame - 在一段时间后删除/杀掉Sprite,无需轮询
这是我来迄今:
# detect collision here - all good
collisions = pygame.sprite.groupcollide(bullets, badGuys, True, False)
for baddies in collisions.values():
for bad in baddies:
# do stuff
baddiesToRemove.appendleft(bad)
# since a collision occured set timer for that specific bad guy:
startTime = pygame.time.get_ticks()
# now after 500 milliseconds have passed, sth like that:
milis = pygame.time.get_ticks() - startTime # result in milliseconds
if (milis > 500):
badGuyToRemove = baddiesToRemove.pop()
badGuyToRemove.kill() # i want to delete the sprite
我希望上面的代码是可以理解的。简而言之,这将无法工作,除非我在中间插入sleep()
以等待一段时间,然后删除精灵。当然,这不是一个选项,因为整个程序会冻结那段时间。我曾想过创建一个线程来处理这个计时器? pygame/python中可以有更好的选项吗?有什么建议吗?提前致谢。