为什么精灵图像闪烁?

0 投票
1 回答
1184 浏览
提问于 2025-04-17 10:06

我该如何防止精灵图像不停地闪烁?(图像名称是 plumbers)。当你运行程序时,唯一闪烁的图像就是这个精灵。

import pygame
import os, sys
import itertools
import pygame
from pygame.sprite import Sprite

cloud_background = pygame.image.load('clouds.bmp')
brick_tile = pygame.image.load('brick_tile.png')
plumbers = pygame.image.load('Mario_sideways_sprite_2xL.png')

pink = (255, 64, 64)
w = 640
h = 480
screen = pygame.display.set_mode((w, h))
running = 1

def setup_background():
    screen.fill((pink))
    screen.blit(cloud_background,(0,0))
    brick_width, brick_height = brick_tile.get_width(), brick_tile.get_height()
    for x,y in itertools.product(range(0,640,brick_width),
                                 range(390,480,brick_height)):
        # print(x,y)
        screen.blit(brick_tile, (x,y))


def show_sprites():
    screen.blit(plumbers,(50,337))
    pygame.display.flip()



while running:
    show_sprites()
    setup_background()
    pygame.display.flip()
    event = pygame.event.poll()
    if event.type == pygame.QUIT: sys.exit()

1 个回答

0

我对pygame不是很了解,但在你等待更有经验的人回答的时候,我可以给你一些可能有帮助的建议。

你每次都从头开始设置背景,这样会消耗很多处理器的资源。更好的方法是只重新绘制需要的背景部分,也就是你的小人之前占据的位置。

通常你可以创建两个变量,叫做旧的X和旧的Y。这样可以加快绘制的过程。

现在你在每个循环中都在绘制整个屏幕。

撰写回答