Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在pygame中,重置每个精灵的最有效方法是什么;什么位置?_Python_Pygame_Pyscripter - Fatal编程技术网

Python 在pygame中,重置每个精灵的最有效方法是什么;什么位置?

Python 在pygame中,重置每个精灵的最有效方法是什么;什么位置?,python,pygame,pyscripter,Python,Pygame,Pyscripter,我正在尝试使用pygame制作一个典型的平台制作程序,但我不确定该如何制作死亡序列。我希望在玩家死后,如果他们移动了,每个精灵的位置都会重置到原来的位置 我尝试过使用pygame.sprite.Group().copy(),但我不知道如何使用它,也不知道它是否适用于我的情况 我会在精灵中存储原始位置的副本,然后@furas建议通过reset()函数重新定位并重新统计精灵 例如: class ResettableSprite( pygame.sprite.Sprite ): MAX_HEA

我正在尝试使用pygame制作一个典型的平台制作程序,但我不确定该如何制作死亡序列。我希望在玩家死后,如果他们移动了,每个精灵的位置都会重置到原来的位置


我尝试过使用
pygame.sprite.Group().copy()
,但我不知道如何使用它,也不知道它是否适用于我的情况

我会在精灵中存储原始位置的副本,然后@furas建议通过
reset()
函数重新定位并重新统计精灵

例如:

class ResettableSprite( pygame.sprite.Sprite ):
    MAX_HEALTH = 100
    def __init__( self, image, x, y ):
        pygame.sprite.Sprite.__init__( self )
        self.image   = image
        self.rect    = self.image.get_rect()
        self.start_x = x
        self.start_y = y
        self.reset()

    def reset( self ):
        self.rect.x = self.start_x
        self.rect.y = self.start_y
        self.health = ResettableSprite.MAX_HEALTH
        # ... etc.

最好在每个精灵中创建函数
reset()
,并为组中的每个精灵运行
-循环以运行
reset()
。如果你复制,那么你会得到带有当前值的VAUE,而不是重置。哦,是的,我从来没有这样想过。谢谢!很高兴我能帮忙。