スプライトを撃つときはいつでも、スクリーンから除去できるようにしたいが、半分の時間(または他の任意の時間)を過ぎた後でなければならない。しかし、私はその期間が終了するのを待つために睡眠をポーリングしたくない。Pygame - ポーリングを行わずに一定時間後にスプライトを削除/削除する
私はこれまで来たところである:
# 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
を私は上記のコードは理解したいと考えています。私はを挿入してしばらく待ってからスプライトを削除しない限り、これはうまくいきません。もちろん、これはオプションではありません。プログラム全体がその期間中フリーズするからです。私は多分このタイマーを処理するスレッドを作成することについて考えている? pygame/pythonにもっと良いオプションがありますか?提案はありますか?前もって感謝します。