我正在使用pygame创建一个游戏,它到目前为止一直有效。
然而,我通过循环浏览我从spritesheet创建的图像,包含了一个爆炸动画。 当这个动画正在运行时,游戏中的其他所有内容都会停止,并且只有在动画完成后才会继续运行:
class Explosion(Thread):
def __init__(self, coordinates):
Thread.__init__(self)
self.x, self.y = coordinates
self.explosionimgs = []
for i in range(0, 47):
self.explosionimgs.append(pygame.image.load("resources/explosion2/%d.png" % (i)))
self.explosionimg = self.explosionimgs[0]
def run(self):
for j in range (0,47):
screen.blit(self.explosionimgs[j], (self.x-80, self.y-80))
pygame.display.update()
有没有办法让游戏中的其他所有内容继续运行,而动画正在进行中?
答案 0 :(得分:3)
有没有办法让游戏中的其他所有内容继续运行,而动画正在进行中?
是。除了游戏的主循环之外,不要创建另一个循环。
一种简单的方法是使用pygame的Sprite
类来表示游戏对象,因为它很好地结合了Rect
和Surface
并且可以轻松地与{{1 }}
这是一个愚蠢简单的可运行的例子。注意一切都在继续移动,而Groups
类一直在追逐它的形象。
只需从spritesheet设置图像,而不是使用Explosion
:
pygame.draw.circle