当前位置: 首页 > 知识库问答 >
问题:

Pygame退出游戏并获取输入

邬承悦
2023-03-14

我在Pygame中的游戏有一些问题。我希望窗口右上角的十字架在点击时退出游戏。但它似乎不起作用。我还希望它从空格键获取输入并掷骰子。

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

代码的其余部分都在下面,但是当我用这个循环时,屏幕会变黑。

共有2个答案

卢俭
2023-03-14

您的第一个if语句犯了一个很大的错误。您应该有事件。键入相互对齐的行。您正在这样做:

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放在time循环中。它会退出游戏/让屏幕上什么都没有,让你的程序变得疯狂。在循环中安全退出程序的唯一合乎逻辑的方法是使用sys.exit()。因此,您的新而循环应该是:

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

希望这对你有所帮助!

子车新立
2023-03-14

要让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()
 类似资料:
  • 本文向大家介绍pygame实现打字游戏,包括了pygame实现打字游戏的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了pygame实现打字游戏的具体代码,供大家参考,具体内容如下 1.基本代码 下面的代码完成了每一秒在界面的顶部随机生成一个新的字母 2.移动字母 先增加一个定时器,设定字母20毫秒移动一格 在主循环中加入移动的代码 3.消除字母 在事件的处理代码中加入对键盘字母的判断

  • 本文向大家介绍python pygame实现2048游戏,包括了python pygame实现2048游戏的使用技巧和注意事项,需要的朋友参考一下 实现2048相对来说比较简单,用4*4的二维数组保存地图,pygame.key.get_pressed()获取键盘操作,详见代码。 效果图 代码 后续可以考虑实现动画和AI。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程

  • 所以我正在用Pygame制作一个游戏,我需要一个菜单,让玩家在不同的游戏类型之间进行选择。我试着让它在显示指令时,玩家可以使用键盘选择类型;然而,当我这样做的时候,游戏就会出错。指示将保留在屏幕上(有时会绘制平面精灵)。当按下时,我添加了一行代码来打印shell中的某些内容,但没有打印任何内容。 注释掉的部分是启动游戏的原始代码。

  • 您好,我正在中制作一个游戏,我想知道如何以及最好的方式是在屏幕上添加游戏。以下是玩家健康状况小于或等于0的代码: 我不确定该怎么做,因为我试图使用另一个py呼叫游戏,但玩家死亡的时间被重置为0并返回,所以玩家死亡的地方可能发生任何事情吗?

  • 本文向大家介绍pygame游戏之旅 如何制作游戏障碍,包括了pygame游戏之旅 如何制作游戏障碍的使用技巧和注意事项,需要的朋友参考一下 本文为大家分享了pygame游戏之旅的第6篇,供大家参考,具体内容如下 定义一个障碍模型函数: 在游戏循环中调用: 障碍消失之后修改x值: 全部代码: 结果图: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 我曾经以小程序的形式运行我的程序,当时运行良好,但我决定尝试让它在JFrame中运行。我最近遇到了覆盖问题,但我想我终于解决了这个问题。这是我最近一直在做的一个游戏,它基本上是Flappy Bird的再创造。我不打算出售我的完成版,因为我相信功劳不属于我。现在我正在寻找一个管道穿过屏幕,我计划在任何给定的时间在屏幕上最多制作3组管道。 帧未打开的修复错误新错误:不希望的输出 这是我的主要课程(游戏