1
import math, sys, os, pygame, random, time

pygame.init()
screen = pygame.display.set_mode((500,500))
pygame.display.set_caption('Tester.')
pygame.mouse.set_visible(0)


def smileMove():
    smiley = pygame.image.load('smiley.png')
    random.seed()
    xMove = random.randrange(1,501)
    yMove = random.randrange(1,501)

    screen.blit(smiley,(xMove,yMove))


c = 0

while c <5:
    smileMove()
    time.sleep(3)
    c = c + 1

pygame.quit()

我对编程很陌生,我只是用 PyGame 尝试一些基本的东西。屏幕保持黑色,没有出现笑脸。我试图让面孔出现在黑色背景上,并每 3 秒更改到另一个随机位置,5 次然后退出。

4

2 回答 2

1

您错过了pygame.display.flip()实际更新窗口内容的调用 - 将其放在您的time.sleep调用之前。

在尝试 Python 和 pygame API 的早期阶段,我的建议是在交互式控制台上尝试一些东西。

于 2013-04-01T20:39:15.330 回答
0

首先,它需要在一个while循环中(至少如果你要做更多的话),你也错过了背景。这应该工作:

import math, sys, os, pygame, random, time

pygame.init()
screen = pygame.display.set_mode((500,500))
pygame.display.set_caption('Tester.')
pygame.mouse.set_visible(0)
white = ( 255, 255, 255)

def smileMove():
    screen.fill(white)
    smiley = pygame.image.load('smiley.png')
    random.seed()
    xMove = random.randrange(1,501)
    yMove = random.randrange(1,501)

    screen.blit(smiley,(xMove,yMove))

c = 0
done = False
while done==False:
    for event in pygame.event.get(): # User did something
        if event.type == pygame.QUIT: # If user clicked close
            done=True # Flag that we are done so we exit this loop

    screen.fill(white)
    while c <5:
        smileMove()
        pygame.display.flip()
        c = c + 1
        time.sleep(3)
pygame.quit()
于 2013-04-07T03:06:34.043 回答