如何创建一个空的PyGame窗口?
PyGame
Pygame 是一个用于开发游戏和多媒体应用程序的Python库。它提供了处理用户输入、图形、声音和其他多媒体相关任务的功能。
Pygame 是建立在 SDL(Simple DirectMedia Layer) 库上的,提供了对音频、键盘、鼠标、操纵杆和图形硬件的低级访问。Pygame提供了一个高级接口到SDL,使它更容易为Python开发者使用。
使用Pygame,开发者可以创建2D游戏、街机风格的游戏、教育游戏、模拟和其他多媒体应用程序。Pygame提供了一组模块来处理图形、音频、输入和其他与游戏相关的任务。它还包括用于处理图像和声音文件以及构建游戏菜单和界面的工具。
Pygame 是开源的,可在LGPL(较少通用公共许可证)或GPL(通用公共许可证)下使用。它可以使用pip(Python包管理器)安装,也可以直接从Pygame网站下载。
安装PyGame
按照以下步骤安装Pygame:
-
步骤1 – 确保您的系统上安装了Python。Pygame适用于Python 3.5及以上版本。您可以从官方网站(https://www.python.org/downloads/)下载Python。
-
步骤1 – 打开终端/命令提示符窗口。
-
步骤2 – 通过键入以下命令并按Enter安装Pygame –
pip install pygame
-
步骤3 – 等待安装完成。这可能需要几分钟,具体取决于您的互联网速度。
-
步骤4 – 通过在代码中导入pygame测试它。如果您没有看到任何错误消息,则Pygame已成功安装在您的系统上。
注意 – 根据您的操作系统,您可能需要安装其他库或软件包以使Pygame正常工作。检查Pygame文档以获取有关您系统的具体要求的更多信息。
PyGame窗口
语法
用户可以按照以下语法创建一个空的Pygame窗口。
import pygame
pygame.init()
size = (800, 600) # 宽度,高度
screen = pygame.display.set_mode(size)
pygame.display.set_caption("My Pygame Window")
创建一个空的Pygame窗口,可以按照以下步骤进行:
-
导入pygame后,通过调用pygame.init()函数来初始化它。此函数初始化所有Pygame模块,在调用任何其他Pygame函数之前应调用它。
-
通过创建一个宽度和高度(以像素为单位)的元组来设置窗口的大小。
-
通过调用pygame.display.set_mode()函数,传入size元组作为参数来创建Pygame窗口。此函数创建一个指定大小的新Pygame窗口。
-
通过调用pygame.display.set_caption()函数设置窗口的标题。此函数将窗口的标题设置为指定字符串。
-
游戏循环:最后,您需要设置一个游戏循环,使窗口保持打开状态。
-
游戏循环应包含以下代码。此循环无限运行,直到用户通过单击关闭按钮或按下Alt+F4关闭窗口。
while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit()
当您运行此代码时,您应该会看到一个空的Pygame窗口,窗口的标题为“我的Pygame窗口”。
示例1
本程序创建了一个 Pygame 窗口,并包含一个主游戏循环,处理事件,使用 Pygame 的内置绘图函数绘制圆形、矩形和线段,以及更新窗口。您可以修改 pygame.draw.circle()、pygame.draw.rect() 和 pygame.draw.line() 函数的参数来改变形状的位置、大小、颜色和厚度。
import pygame
pygame.init()
window_size = (800, 600)
window = pygame.display.set_mode(window_size)
pygame.display.set_caption("My Pygame Window")
running = True
while running:
# 处理事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# 绘制形状
window.fill((255, 255, 255))
pygame.draw.circle(window, (255, 0, 0), (150, 200), 50)
pygame.draw.rect(window, (0, 200, 0), (100, 300, 300, 200))
pygame.draw.line(window, (0, 0, 100), (100, 100), (700, 500), 5)
pygame.display.flip()
pygame.quit()
输出
例2
本程序创建了一个 Pygame 窗口,并添加了一个带有白色矩形形状、黑色文本标签和悬停效果(当鼠标光标位于按钮区域上方时会更改按钮颜色)的按钮。该程序还处理鼠标事件以检测按钮何时被单击,并将一条消息打印到控制台。您可以修改 button_rect、button_font 和 button_text 对象的属性,以更改按钮的位置、大小、颜色、字体和标签。同时,它还显示一个时钟,显示程序启动后经过的时间(秒)。
该程序还使用 Pygame 的 Clock 对象限制帧率为 60 FPS。您可以通过更改 clock_font 和 clock_text_rect 对象的属性,来修改时钟文本的字体大小、颜色和位置。
import pygame
pygame.init()
window_size = (800, 600)
window = pygame.display.set_mode(window_size)
pygame.display.set_caption("My Pygame Window")
# 定义按钮属性
button_color = (255, 255, 255)
button_hover_color = (200, 200, 200)
button_rect = pygame.Rect(300, 250, 200, 100)
button_font = pygame.font.SysFont(None, 36)
button_text = button_font.render("Click me!", True, (0, 0, 0))
button_text_rect = button_text.get_rect(center=button_rect.center)
# 初始化 Pygame 时钟
clock = pygame.time.Clock()
running = True
while running:
# 限制帧率为 60 FPS
clock.tick(60)
# 处理事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# 处理鼠标事件
if event.type == pygame.MOUSEBUTTONDOWN:
mouse_pos = pygame.mouse.get_pos()
if button_rect.collidepoint(mouse_pos):
print("Button clicked!")
if event.type == pygame.MOUSEMOTION:
mouse_pos = pygame.mouse.get_pos()
if button_rect.collidepoint(mouse_pos):
button_color = button_hover_color
else:
button_color = (255, 255, 255)
# 绘制按钮和时钟
window.fill((128, 128, 128))
pygame.draw.rect(window, button_color, button_rect)
window.blit(button_text, button_text_rect)
current_time = pygame.time.get_ticks()
clock_text = button_font.render(f"Time: {current_time/1000:.2f} s", True, (255, 255, 255))
clock_text_rect = clock_text.get_rect(topright=(780, 10))
window.blit(clock_text, clock_text_rect)
pygame.display.flip()
pygame.quit()
输出
结论
在本教程中,我们学习了 Pygame,如何安装 Pygame,并使用代码创建一个空的 Pygame 窗口。在例2中,我们学习了如何绘制形状。
而且我们在示例3中学习了如何添加按钮和时钟。