pygame事件处理游戏界面进行全屏切换,游戏不是全屏怎么调,


我们在第一个程序里使用了如下的语句

screen = pygame.display.set_mode((640, 480), 0, 32)

也讲述了各个参数的意思,当我们把第二个参数设置为FULLSCREEN时,就能得到一个全屏窗口了

screen = pygame.display.set_mode((640, 480), FULLSCREEN, 32)

注意:如果你的程序有什么问题,很可能进入了全屏模式就不太容易退出来了,所以最好先用窗口模式调试好,再改为全屏模式。

看一下这个示例:

background_image_filename = './img/Spaceship.png'import pygamefrom pygame.locals import *from sys import exitpygame.init()screen = pygame.display.set_mode((640, 480), 0, 32)background = pygame.image.load(background_image_filename).convert()Fullscreen = Falsewhile True:    for event in pygame.event.get():        if event.type == QUIT:            exit()        if event.type == KEYDOWN:            if event.key == K_f:                Fullscreen = not Fullscreen                if Fullscreen:                    screen = pygame.display.set_mode((640, 480), FULLSCREEN, 32)                else:                    screen = pygame.display.set_mode((640, 480), 0, 32)    screen.blit(background, (0,0))    pygame.display.update()

运行这个程序,默认还是窗口的,按“f ”,显示模式会在窗口和全屏之间切换。

事件(Event) 基本上说是一个用户操作,如按键、点击、鼠标移动等等,或者是一些提示信息,如系统生成的通知。

事件检索

上面程序中,使用了pygame.event.get()来处理所有的事件,这好像打开大门让所有的人进入。然后根据需要进行筛选,过滤,根据不同的事件类型进行处理。

在上面的程序中如果是用户按下关闭按钮(QUIT),那么执行推出;如果是键盘按键按下事件(KEYDOWN),判断是否是f键,然后进行全屏切换。

下表是一个常用事件集:

事件产生途径参数
QUIT用户按下关闭按钮none
ATIVEEVENTPygame被激活或者隐藏gain, state
KEYDOWN键盘被按下unicode, key, mod
KEYUP键盘被放开key, mod
MOUSEMOTION鼠标移动pos, rel, buttons
MOUSEBUTTONDOWN鼠标按下pos, button
MOUSEBUTTONUP鼠标放开pos, button
JOYAXISMOTION游戏手柄(Joystick or pad)移动joy, axis, value
JOYBALLMOTION游戏球(Joy ball)?移动joy, axis, value
JOYHATMOTION游戏手柄(Joystick)?移动joy, axis, value
JOYBUTTONDOWN游戏手柄按下joy, button
JOYBUTTONUP游戏手柄放开joy, button
VIDEORESIZEPygame窗口缩放size, w, h
VIDEOEXPOSEPygame窗口部分公开(expose)?none
USEREVENT触发了一个用户事件code

本站内容未经许可,禁止任何网站及个人进行转载。

评论关闭