为什么屏幕不会在PyGame中刷新?

时间:2013-06-30 18:03:35

标签: pygame

我对PyGame比较陌生。我正在尝试创建一个简单的程序来显示一个表示屏幕上鼠标位置的字符串。

import pygame, sys
from pygame.locals import *

pygame.init()
screen = pygame.display.set_mode((400,400),0,32)
myFont = pygame.font.SysFont('arial', 14)

while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()

    x,y = pygame.mouse.get_pos()
    label = myFont.render('mouse coords: ' + str(x) + ', ' + str(y), 1, (0,128,255))

    screen.blit(label, (10,10))
    pygame.display.update()

当我移动鼠标时,标签会变得模糊,直到文字不可读。我确定我正在正确调用screen.blit()和pygame.display.update(),但标签似乎没有更新!任何帮助都会很棒。

1 个答案:

答案 0 :(得分:4)

你需要做的是在循环中blit一个背景,因为你正在做的是在彼此顶部的鼠标上进行blitting

做这样的事情:

import pygame, sys
from pygame.locals import *

pygame.init()
screen = pygame.display.set_mode((400,400),0,32)
myFont = pygame.font.SysFont('arial', 14)

while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()

    x,y = pygame.mouse.get_pos()
    label = myFont.render('mouse coords: ' + str(x) + ', ' + str(y), 1, (0,128,255))
    screen.fill((0,0,0))
    screen.blit(label, (10,10))
    pygame.display.update()

这样你就可以在每个更新之间用黑色填充屏幕,这样鼠标位置就会被填充然后被填充清除然后新的pos被blit等等