3

我对 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(),但是标签似乎没有更新!任何帮助都会很棒。

4

1 回答 1

4

您需要做的是在循环中对背景进行 blit,因为我们正在做的是将 mousecoords 一个在彼此之上

做这样的事情:

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 被 blitted 然后被填充清除,然后新的 pos 被 blitted 等等

于 2013-06-30T23:57:42.327 回答