Pygame:输入后画一个圆圈

时间:2014-01-02 22:04:21

标签: python input drawing

这似乎是一个非常简单的代码,这就是为什么我更加困惑它不会起作用。我正在创建一个游戏,绘制不同的图片线条,并在每个形状后,询问用户它可能是什么。我的问题是,一旦我输入() - 包括部分,它甚至不会绘制第一个圆圈,但没有输入,它完全正常。

import pygame, sys
from pygame.locals import *

pygame.init()
screen = pygame.display.set_mode((1000, 600))
pygame.display.set_caption('PyDoodle')
clock= pygame.time.Clock()
clock.tick(30)
#importing background pictures:
backPimg = pygame.image.load('Wood.jpg')
backPimg = pygame.image.load('Paper.jpg')
backWx = 0
backWy = 0
backPx = 250
backPy = 0
screen.blit(backWimg, (backWx, backWy))
screen.blit(backPimg, (backPx, backPy))

#colors
black = (0, 0, 0)

#solutions
snowman = ('snowman'.capitalize(), 'snow man'.upper(), 'snowman', 'snow man')

#MAIN GAME
while True:
    for event in pygame.event.get()
        if event.type == QUIT:
            pygame.quit()
            sys.exit()
        pygame.display.update()

#DRAWING #1: SNOWMAN
#circle 1 - the part that's getting on my nerves
    pygame.draw.circle(screen, black, (500,400), 70, 2)
    guess1 = raw_input('Your guess:\n')

如果你能看一下它真的很好,也许你有一些建议。

1 个答案:

答案 0 :(得分:0)

问题是pygameraw_input等待输入时没有收到任何事件。 (此时您不在事件循环中。)因此,您永远不会执行pygame.display.update()

pygame.display.update()之后添加pygame.draw.circle(screen, black, (500,400), 70, 2)。但是,如果需要重新绘制窗口,则在输入完成之前不会执行。

可能您应该使用pygame提供的输入机制。