Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Pygame运行代码时出现的问题_Python_Python 3.x_Pygame - Fatal编程技术网

Python 使用Pygame运行代码时出现的问题

Python 使用Pygame运行代码时出现的问题,python,python-3.x,pygame,Python,Python 3.x,Pygame,好的,我写了一段代码,用pygame开发了一个游戏。这是游戏的目的: 有一个玩家(马里奥)只能垂直移动。从窗口的右侧,火焰出现,马里奥不得不躲避。游戏非常类似于dodger.py! 现在,当我运行游戏时,它会卡在“按任意键进入” 请帮忙 您没有在waitforkey()函数中执行任何操作 if event.type == KEYDOWN: # if key exit blah blah else: runGame() 你可以把游戏放在一个名为runGame的函

好的,我写了一段代码,用pygame开发了一个游戏。这是游戏的目的: 有一个玩家(马里奥)只能垂直移动。从窗口的右侧,火焰出现,马里奥不得不躲避。游戏非常类似于dodger.py! 现在,当我运行游戏时,它会卡在“按任意键进入”


请帮忙

您没有在
waitforkey()函数中执行任何操作

if event.type == KEYDOWN:
    # if key exit blah blah
    else:
        runGame() 

你可以把游戏放在一个名为runGame的函数中,这可能是最简单的方法。请记住,变量将是该函数作用域的局部变量,任何更改都不会影响程序的其余部分

在PC上检查代码后,我发现了3个错误。其中两个是打字错误。第一个是第77行:

playerrect.topleft = (50,window_hight/2)
需要:

playerrect.topleft = (50,window_height/2)
第二个在第126行:

WindowSurface.fill(bgcolour)
您还没有定义
bgcolour
(据我所知),因此在文件顶部的变量中添加以下内容:

bgcolour(255,255,255) #change to what colour you want
我发现的第三个错误是在您的
waitForKey()
函数中。我不知道这对程序的运行是否重要,但是您的
if event.type==“QUIT”
在语音标记中。就像我说的,这可能不重要,但我想我会指出这一点。您还为此函数中的其他条件执行了此操作


通过进行这些更改,您可以运行代码。然而,火焰并没有出现,我也没有时间去弄清楚这一点。通过摆弄,我相信你会明白的

如果你把代码包括进来,那会很有帮助。你试过按“any”键吗?:)撇开玩笑不谈,在
waitForPlayerToPressKey()函数中没有设置任何操作。
if event.type==KEYDOWN:
只处理
终止
事件,其他什么都不处理。但是道奇游戏运行得非常好,即使没有添加任何案例来检查何时按下其他键?有什么区别?那为什么道奇游戏在运行?即使是这段代码也没有像runGame那样的功能@Lawrence@user3456011我不知道这个道奇游戏,但我猜它会有菜单的循环,然后一旦检测到键,循环就会中断,然后进入下一个循环。但是,我从来没有见过代码,所以我不能确定。使用空白的return语句退出当前函数。这意味着当按下一个键时,程序将继续。你的代码中有这个,所以我不明白为什么你可能会出错或冻结。我无法运行你的代码,因为我现在在iPhone上,但看起来一切都应该运行。我不能确定,但我想形成问题的下一个地方是使用两个While True循环。请尝试取出其中一个。当您在PC上时,请检查此代码好吗?