博客
关于我
Pygame
阅读量:796 次
发布时间:2023-03-04

本文共 1483 字,大约阅读时间需要 4 分钟。

pygame基础入门

pygame是Python的一个强大库,用于创建2D游戏和图形界面。它能够与图形卡进行交互,并支持多种输入设备,比如鼠标和键盘。以下是pygame的基础使用方法。

一、初始化pygame

import pygamepygame.init()

初始化pygame是为后续操作做准备的重要步骤。它会内部加载所有需要的驱动程序和模块,为使用硬件做好准备。

二、创建显示屏

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

set_mode接收三个参数:

  • (width, height):屏幕的宽度和高度
  • fullscreen:布尔值,设置为True时会进入全屏模式
  • depth:颜色深度

调用set_mode后,会返回一个Surface对象,表示游戏窗口。

三、设置窗口标题

pygame.display.set_caption("Hello, World!")

set_caption方法用于设置窗口标题,可以为游戏添加一个友好的名字。

四、加载并显示背景图像

background = pygame.image.load("背景图片文件名").convert_alpha()screen.blit(background, (0, 0))

加载图像并使用blit方法将其绘制到屏幕上。convert_alpha用于保留图像的透明度信息。

五、处理鼠标事件

x, y = pygame.mouse.get_pos()

get_pos方法用于获取鼠标的当前位置,返回一个元组(x, y)。

六、刷新屏幕

pygame.display.update()

update方法用于将屏幕上的数据刷新到显示器上,确保画面更新。

七、处理事件

event = pygame.event.wait()if event.type == pygame.QUIT:    pygame.quit()    quit()

event.wait()方法会等待事件发生,并返回事件对象。检查事件类型为QUIT时,退出游戏程序。

八、处理键盘事件

for event in pygame.event.get():    if event.type == pygame.KEYDOWN:        print("按下了键盘按键", event.key)    if event.type == pygame.KEYUP:        print("松开了键盘按键", event.key)

使用event.get()获取所有事件,然后根据事件类型处理键盘按下和按开的动作。KEYDOWN事件返回键盘按下的键码,KEYUP事件同样返回按开的键码。

九、过滤事件

pygame.event.set_blocked(event_type)

set_blocked方法可以阻止特定类型的事件被处理。如:

pygame.event.set_blocked(pygame.MOUSEMOTION)

十、创建自定义事件

my_event = pygame.event.Event(KEYDOWN, key=K_SPACE, mod=0, unicode=' ')

通过Event类创建自定义事件,可以设置事件类型、键码等属性。

十一、刷新屏幕

pygame.display.flip()

flip方法用于交替显示两张屏幕像素数据,通常用于双缓冲机制中的刷新。

以上是pygame的基础操作,通过这些方法可以实现基本的图形绘制和事件处理。

转载地址:http://ayafk.baihongyu.com/

你可能感兴趣的文章
poj 3468 A Simple Problem with Integers 降维线段树
查看>>
poj 3468 A Simple Problem with Integers(线段树 插线问线)
查看>>
poj 3485 区间选点
查看>>
poj 3518 Prime Gap
查看>>
poj 3539 Elevator——同余类bfs
查看>>
poj 3628 Bookshelf 2
查看>>
Qt笔记——官方文档全局定义(一)Types数据类型
查看>>
POJ 3670 DP LIS?
查看>>
POJ 3683 Priest John's Busiest Day (算竞进阶习题)
查看>>
POJ 3988 Selecting courses
查看>>
POJ 4020 NEERC John's inversion 贪心+归并求逆序对
查看>>
poj 4044 Score Sequence(暴力)
查看>>
POJ 题目3020 Antenna Placement(二分图)
查看>>
Poj(1797) Dijkstra对松弛条件的变形
查看>>
POJ--2391--Ombrophobic Bovines【分割点+Floyd+Dinic优化+二分法答案】最大网络流量
查看>>
POJ-1163-The Triangle
查看>>
POJ-Fence Repair 哈夫曼树
查看>>
poj1061 - 同余方程,二元一次不定方程
查看>>
poj1068Parencodings
查看>>
poj1182(带权并查集)
查看>>