「好课堂在线」pygame事件处理游戏界面进行全屏切换

liftword3个月前 (03-26)技术文章22

作者:好课堂数学编程陈老师

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

screen = pygame.display.set_mode((800, 800), 0, 32)

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

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

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

看一下这个示例:

# pygame事件处理游戏界面进行全屏切换 #

# 指定文件名 
background_image_filename = "C:/陈国华/好课堂资料/python/python资料/xingkong1.jpg"
# 导入pygame库 
import pygame
# 导入一些常用的函数和常量 
from pygame.locals import *

# 初始化pygame,为使用硬件做准备 
pygame.init()

# 创建一个窗口
screen = pygame.display.set_mode([800,800], 0, 32)
# 设置窗口标题
pygame.display.set_caption("pygame事件处理游戏界面进行全屏切换")
background = pygame.image.load(background_image_filename).convert()
running = True
Fullscreen = False
# 游戏主循环
while running:
    for event in pygame.event.get():
        # 接收到退出事件后退出程
        if event.type == QUIT:
            running = False
        if event.type == KEYDOWN:
            if event.key == K_f:
                Fullscreen = not Fullscreen
                if Fullscreen:
                    screen = pygame.display.set_mode([800, 800], FULLSCREEN, 32)
                else:
                    screen = pygame.display.set_mode([800,800], 0, 32)
    # 将背景图画上去
    screen.blit(background, (0, 0))
    # 刷新一下画面
    pygame.display.update()

pygame.quit()

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

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

事件检索

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

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

下表是一个常用事件集:

相关文章

.htaccess设置301跳转及常用技巧整理

在虚拟主机环境中,基本上都是Apache环境。Apache的伪静态的设置,都是在网站根目录设置.htaccess文件,在.htaccess文件中无论是伪静态,还是301跳转,甚至是防盗链和禁止某个IP...

干货|Python大佬手把手带你破解哔哩哔哩网滑动验证(上篇)

/1 前言/ 有爬虫经验的各位小伙伴都知道,正常我们需要登录才能获取信息的网站,是比较难爬的。原因就是在于,现在各大网站为了反爬,与爬虫机制斗智斗勇,一般的都加入了图片验证码、滑动验证码之类的干扰,让...

Python合集之Python跳转语句(一)

在上一节的合集中,我们了解了Python循环嵌套语句的相关知识,本节我们将进一步了解一下Python跳转语句中的break的相关知识。 当循环条件一直满足时,程序会一直执行下去,如果希望在中间离开循环...

Python自学之Pywebio(四)添加菜单并增加菜单链接至新页面

Python自学之Pywebio(三)增加button按钮前面文章我们规划了系统框架、编写了主体架构、新增了按钮。本章我们新增菜单并跳转到新页面,打开一个表格。我们先学两个函数:put_collaps...

Markdown + 文档管理 + 静态网页生成,集大成的 Markdown 应用:MWeb

上周给大家推荐了 Typora,作为一款纯粹的 Markdown 应用来说,它的各种功能和细节可以说已经相当极致,然而,Ulysses用户表示:我们想要的不仅仅是 Markdown。是的,Markdo...

Flet 手机app界面设计,导航和路由,在多个界面之间自由跳转

前面的几篇文章,基本讲清楚了 Flet 界面设计,但都是“单个界面”。在实际项目中,肯定需要设计“多个界面”啊,多个界面直接怎么导航呢?也就是 Flet 的路由功能,这是Flet开发的必备技术。依然保...