我在Pygame中遇到了一些问题。如果点击,我希望Windows右上方的十字架退出游戏。但它似乎没有用。我也想让它从空格键输入并滚动骰子。
diceRoll = random.randint(1, 4)
while True:
events = pygame.event.get()
for event in events:
if event.type == pygame.KEYDOWN:
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if event.key == pygame.K_SPACE:
diceRoll
其余代码属于此范围,但是当我使用此循环时屏幕变黑。
答案 0 :(得分:1)
要告诉PyGame正确退出,你必须
if event.type == pygame.QUIT:
pygame.quit()
# perhaps force a quit using sys.exit()
如果您处于循环中,则还应使用break
对于空格键活动,你已经到了中途。
if event.key =0 pygame.K_SPACE:
roll_dice()
答案 1 :(得分:0)
你的第一个if
陈述犯了一个很大的错误。您应该让event.type
行彼此一致。你这样做:
if event.type == pygame.KEYDOWN:
if event.type == pygame.QUIT:
当你应该这样做时:
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
elif event.type == pygame.KEYDOWN:
pass #Put your other code here
第二个错误是 从不 将pygame.quit
放入while循环中。它将退出游戏/使屏幕上没有任何东西,让你的程序变得疯狂。 安全地退出循环循环的唯一逻辑方法是使用sys.exit()
。所以你的新while循环应该是:
while True:
events = pygame.event.get()
for event in events:
if event.type == pygame.QUIT:
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
print 'diceRoll' #Doing diceRoll alone won't do anything
pygame.quit() #This is the proper location of this function
我希望这可以帮到你!