Pygame学习笔记 1 —— 初探pygame

    Pygame是一个强大的游戏库,适合做2D游戏。参考一位前辈的博客(感谢)学了一下pygame库,正在学习中,对pygame有了大致了解,于是记记笔记。
在这里插入图片描述
主要内容: pygame游戏程序基本框架、pygame库的基本函数、在pygame运行窗口绘图



一、pygame程序基本框架

程序的基本框架如下图所示:

# 导入模块
import pygame, sys
from pygame.locals import *

# pygame 的初始化
pygame.init()

# 设置游戏标题、导入图象元素
pygame.display.set_caption("Draw rabbit")
screen = pygame.display.set_mode((640,480), 0, 32)
sprite = pygame.image.load("rabbit.png")

# 游戏主循环
while True:
	for event in pygame.event.get():
		if event.type == QUIT:
			pygame.quit()
			sys.exit()

	screen.fill((200,225,225))
	screen.blit(sprite, (260,180))

	pygame.display.update()

程序主要包含3部分,模块的导入、设置游戏窗口和基本元素、游戏主循环。



二、代码说明:

1、pygame模块的导入

# 导入模块
import pygame, sys
from pygame.locals import *

  同math、numpy、request等库一样,使用pygame之前先import 导入,pygame.locals包含了pygame需要使用的各种常量(如:QUIT、K_ESCAPE等),在使用前我们将它们全部导入到程序中。
链接:pygame常用模块


2、pygame的初始化

# pygame 的初始化
pygame.init()

在使用pygame的函数之前都应当先调用该函数进行初始化。


3、对游戏窗口的设置

# 设置游戏标题、导入图象元素
pygame.display.set_caption("name")
screen = pygame.display.set_mode((640,480), 0, 32)

set_caption:设置pygame窗口的标题名称为name
set_mode:该函数返回一个surface对象,包含3个参数,第一个参数为设置窗口的宽(width)和高(height),第二个参数为标志位,具体如下表,第三个参数为色深。

标志位功能
FULLSCREEN创建一个全屏窗口
RESIZABLE创建一个可以改变大小的窗口
NOFRAME创建一个没有边框的窗口

4、检测事件

while True:
	for event in pygame.event.get():
		if event.type == QUIT:
			pygame.quit()
			sys.exit()

  上面的代码中使用了pygame.event.get(),该函数返回个事件列表,for语句将最近发生的事件遍历访问。若时间类型为QUIT(QUIT为pyame.locals的一个常量),则退出游戏并关闭窗口。


5、绘制图形

screen = pygame.display.set_mode((640,480), 0, 32)
sprite = pygame.image.load("rabbit.png")

while True:
	process()
	screen.fill((200,225,225))
	screen.blit(sprite, (260,180))
	pygame.display.update()

pygame.image.load():将图像信息转化为surface对象,对于RGBA色彩模式的图片,默认保留通道信息,即可显示透明部分,也可以像下面这样写:

# 不会保留通道信息
sprite = pygame.image.load("rabbt.png").convert()
# 可以保留通道信息
sprite = pygame.image.load("rabbit.png").convert_alpha()

fill:screen调用fill((200,255,255))函数,将(200,255,255)表示的颜色填充到screen中
blit:screen调用了blit()函数,函数参数为sprite和一个二元组(表示绘制的位置),即在screen上的对应位置上绘制sprite。(坐标(0,0)为窗口左上角,x、y坐标向右下方增大)
update:在使用完blit()函数之后,务必记得使用update函数刷新屏幕,否则屏幕一片漆黑
ps:update() 与 flip() 的区别:

flip函数update函数
仅仅绘制窗口中有变化的区域重新绘制整个窗口
变化区域小时,速度较快 (推荐)速度较慢
适用于仅仅几个物体在移动适用于场景变化频繁的窗口


三、效果预览

运行效果如图:
在这里插入图片描述


第一篇pygame学习笔记完结 cheers! ?

附上:代码压缩包
提取码:okgv


参考博客:用Python和Pygame写游戏-从入门到精通
图标引用:Iconfont

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值