hGe*_*Gen 1 python pygame typeerror
我想看看一个大学项目的pygame模块。我找到了一个很短的教程,然后按照该教程为游戏创建了一个窗口。
这是我的代码:
import sys
import pygame
from pygame.locals import *
pygame.init()
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode(screen_width,screen_height)
pygame.display.set_caption("pygame test")
pygame.mouse.set_visible(True)
done = False
while not done:
for event in pygame.event.get():
if (event.type == KEYUP) or (event.type == KEYDOWN):
print(event)
if (event.key == K_ESCAPE):
done = True
Run Code Online (Sandbox Code Playgroud)
如果我尝试执行该应用程序,它将失败并显示以下错误:
screen=pygame.display.set_mode(screen_width,screen_height)
TypeError: must be 2-item sequence, not int
Run Code Online (Sandbox Code Playgroud)
据我了解函数调用,它应该像我的示例一样工作。对在线错误的进一步研究并没有使我得到任何有用的结果。
我正在运行OSX Mavericks,X11(或更好的XQuartz)以及最新的python运行时,并安装了pygame所需的所有模块。
也许你可以帮我。
您需要一个tuple,而不是整数:
screen = pygame.display.set_mode((screen_width,screen_height))
Run Code Online (Sandbox Code Playgroud)
这是因为您可以将其他变量传递给set_mode:
screen = pygame.display.set_mode((screen_width, screen_height), 0, 32)
Run Code Online (Sandbox Code Playgroud)
这是您编辑的代码:
import sys
import pygame
from pygame.locals import *
pygame.init()
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width,screen_height))
pygame.display.set_caption("pygame test")
pygame.mouse.set_visible(True)
done = False
while not done:
for event in pygame.event.get():
if (event.type == KEYUP) or (event.type == KEYDOWN):
print(event)
if (event.key == K_ESCAPE):
done = True
Run Code Online (Sandbox Code Playgroud)
运行方式为:

bash-3.2$ python test.py
<Event(2-KeyDown {'scancode': 0, 'key': 304, 'unicode': u'', 'mod': 0})>
<Event(2-KeyDown {'scancode': 0, 'key': 310, 'unicode': u'', 'mod': 1})>
<Event(3-KeyUp {'scancode': 0, 'key': 304, 'mod': 1024})>
<Event(3-KeyUp {'scancode': 0, 'key': 310, 'mod': 0})>
bash-3.2$
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4680 次 |
| 最近记录: |