即使绘制它的条件不再有效,如何保持绘制精灵?
How to keep a sprite drawn even after the the condition that drew it is no longer valid?
我的问题与 Pygame 中代码的特定部分有关,我试图每隔几秒在屏幕上绘制一个新的精灵。
def spawn(self):
self.count += 2
alien1_sprite = Alien1((rand.randrange(38,462),50))
rem = self.count % 33
if rem == 0:
self.alien1 = pygame.sprite.Group()
self.alien1.add(alien1_sprite)
self.alien1.draw(screen)
每次调用spawn函数的时候没有精灵同时存在,如何解决这个问题?
问题是,您为每个外星人创建了一个新的 Group。您只需创建一次 Group 并将外星人 Sprites 添加到这个 Group:
- 在class.[=40的构造函数(init)中创建
alien1
Group =]
- 在
spawn
方法中添加外星人。
- 使用您的“绘制”方法绘制 组 中的所有外星人。 (您的方法名称可能不同 - 我不知道)
class ...
def __init__(self):
# [...]
self.alien1 = pygame.sprite.Group() # creat the group in the constructor
def spawn(self):
self.count += 2
rem = self.count % 33
if rem == 0:
alien1_sprite = Alien1((rand.randrange(38,462),50))
self.alien1.add(alien1_sprite)
def draw(self): # your draw or render method
# [...]
self.alien1.draw(screen) # draw all the aliens
阅读 pygame.sprite.Group
的文档。 Group 管理它包含的 Sprites。 Group 是存储 Sprites.
的“列表”
我的问题与 Pygame 中代码的特定部分有关,我试图每隔几秒在屏幕上绘制一个新的精灵。
def spawn(self):
self.count += 2
alien1_sprite = Alien1((rand.randrange(38,462),50))
rem = self.count % 33
if rem == 0:
self.alien1 = pygame.sprite.Group()
self.alien1.add(alien1_sprite)
self.alien1.draw(screen)
每次调用spawn函数的时候没有精灵同时存在,如何解决这个问题?
问题是,您为每个外星人创建了一个新的 Group。您只需创建一次 Group 并将外星人 Sprites 添加到这个 Group:
- 在class.[=40的构造函数(init)中创建
alien1
Group =] - 在
spawn
方法中添加外星人。 - 使用您的“绘制”方法绘制 组 中的所有外星人。 (您的方法名称可能不同 - 我不知道)
class ...
def __init__(self):
# [...]
self.alien1 = pygame.sprite.Group() # creat the group in the constructor
def spawn(self):
self.count += 2
rem = self.count % 33
if rem == 0:
alien1_sprite = Alien1((rand.randrange(38,462),50))
self.alien1.add(alien1_sprite)
def draw(self): # your draw or render method
# [...]
self.alien1.draw(screen) # draw all the aliens
阅读 pygame.sprite.Group
的文档。 Group 管理它包含的 Sprites。 Group 是存储 Sprites.