在pygame中,重置每个子画面位置的最有效方法是什么?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在pygame中,重置每个子画面位置的最有效方法是什么?相关的知识,希望对你有一定的参考价值。

我正在尝试制作一个使用pygame的典型平台游戏,但我不确定我应该如何执行死亡序列。我想要这样,以便玩家死亡后,如果所有精灵移动,它们的所有位置都会重置为其原始位置。

我尝试使用pygame.sprite.Group().copy()进行实验,但我不知道如何使用它,甚至它是否适用于我的情况。

答案

我将原始位置的副本存储在Sprite中,然后按照@furas建议通过reset()函数重新定位和重新指定Sprite。

例如:

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.

以上是关于在pygame中,重置每个子画面位置的最有效方法是什么?的主要内容,如果未能解决你的问题,请参考以下文章

在 JPA 中插入多行的最有效方法

pygame写贪吃蛇

使随机标签位置适应窗口大小的最有效方法是啥?

测试 256 位 YMM AVX 寄存器元素是不是等于或小于零的最有效方法

在 Angular 2 中应用频繁 CSS 更改的最有效方法

Bits twiddling hack:每 n 位删除一位的最有效方法?