在pygame中移动精灵而不闪烁

时间:2021-01-25 22:05:57

标签: python pygame

所以我一直在 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)

1 个答案:

答案 0 :(得分:1)

典型的 Pygame 应用程序循环必须:

删除 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)
相关问题