所以我一直在 pygame 中玩,我可以绘制并使用 update
方法来移动我的精灵,但是当我清除屏幕时,精灵会闪烁。如何在不闪烁的情况下移动精灵
代码如下:
class Sprite(pygame.sprite.Sprite):
def __init__(self, pos):
super(Sprite, self).__init__()
self.image = demon
self.rect = self.image.get_rect(center = pos)
def update(self, moveX, moveY):
self.rect.x += moveX
self.rect.y += moveY
screen.fill(BLACK)
答案 0 :(得分:1)
典型的 Pygame 应用程序循环必须:
pygame.event.pump()
或 pygame.event.get()
处理事件。blit
所有对象)pygame.display.update()
或 pygame.display.flip()
更新显示删除 screen.fill(BLACK)
表单 update
:
class Sprite(pygame.sprite.Sprite):
# [...]
def update(self, moveX, moveY):
self.rect.x += moveX
self.rect.y += moveY
# screen.fill(BLACK) <--- DELETE
实现以下应用程序循环(基于您之前的问题):
while carryOn == True:
# handle events
for event in pygame.event.get():
if event.type==pygame.QUIT:
carryOn=False
# update
# [...]
# clear display
screen.fill(BLACK)
# draw sprites
all_sprites_list.draw(screen)
# update display
pygame.display.flip()
clock.tick(60)