Python第三方库pygame学习笔记(一)
Pygame
Python最经典的2D游戏开发第三方库,也支持3D游戏开发
Pygame适合用于游戏逻辑验证、游戏入门及系统演示验证
Pygame是一种游戏开发引擎,基本逻辑具有参考价值
pygame库安装:在系统命令行运行pip install pygame即可
Pygame的最小开发框架
先从一段代码开始
# 示例代码1
import pygame,syspygame.init() #初始化init()
screen = pygame.display.set_mode((600, 400)) #初始化显示窗口
pygame.display.set_caption("Pygame游戏之旅") #设置窗口标题
icon = pygame.image.load("PYG03‐flower.png")
pygame.display.set_icon(icon) #设置窗口图标while True:for event in pygame.event.get(): #事件获取if event.type == pygame.QUIT: #事件判别及响应sys.exit() #结束游戏并退出pygame.display.update() #刷新屏幕
代码可以分为导入及初始化以及事件响应及刷新的无限循环部分,如下图所示
sys为Python内置的标准库,用于提供Python运行时环境变量的操控。在这段代码中,我们仅用到sys.exit()来实现退出结束游戏
pygame.init()实现对Pygame内部各功能模块进行初始化创建及变量设置,默认调用
屏幕控制函数
Pygame提供了一些重要的屏幕控制函数,在对屏幕进行操作时,以像素为单位。
1、screen=pygame.display.set_mode(size=(width,height),flags)
生成的screen为Pygame下的Surface对象
size需要为元组类型,flags用于指定屏幕显示方式(窗口大小可调、无边框以及全屏显示)
flags=pygame.RESIZABLE #窗口大小可调
flags=pygame.NOFRAME #无边框
flags=pygame.FULLSCREEN #全屏
例:screen=pygame.diplay.set_mode((800,450),pygame.FULLSIZE)
注意:当我们设置size为给定大小(width,height)后,对于可变尺寸和全屏需要作出相应的变化
2、pygame.dispay.Info() #得到当前窗口的相关信息,返回一个信息对象VideoInfo。其中有两个重要的参数
- current_w :当前显示模式或窗口的像素宽度
- current_h:高度
3、pygame.diaplay.set_caption("字符串")
4、pygame.display.get_caption() #用的得到当前窗口的标题,可以与set_caption()搭配使用,实现窗体标题在不同情景下更替
5、pygame.display.set_icon(Surface对象) #设置窗口的图标效果
icon = pygame.image.load("PYG03‐flower.png") pygame.display.set_icon(icon)
6、pygame.diaplay.update() #对当前显示窗口进行更新。与pygame.display,flip()区别是:.update()仅重新绘制窗口中有变化的区域,相比.flip()执行更快。而.flip()需要重新绘制整个窗口
7、pygame.display.get_active() #判断显示窗口是否处于最小化,当最小化时返回False,正常显示时返回True。通过返回值设定相应的响应机制,如游戏暂停等
色彩机制
pygame.Color类用来确定颜色。在pygame中,支持用色彩名字、RGB值(0-255)以及HTML色彩格式定义颜色。此外,pygame还支持RGBA模式,即增加了第四维度:alpha通道。用来表示透明度,通道值越大,不透明度程度越高。默认值为255(不透明)
- pygame.Color(name) #pygame.Color("red")
- pygame.Color(r,g,b,a)
- pygame.Color(rgbvalue)
事件响应机制
pygame提供了pygame.event.get()用于从事件队列中取出并删除该事件。我们可以针对不同的事件类型提供相应的相应策略。
例如:当pygame.QUIT:Pygame中定义的退出事件常量触发时,sys.exit()用于响应游戏结束退出,我们还可以在键盘上下左右按键事件触发的时候,设计不同的相应策略进而实现相应的功能。
在接下来的实例中,还要用到的事件常量及其含义如下:
pygame.RESIZABLE(窗口模式下尺寸变动)、pygame.FULLSCREEN(切换为全屏)、pygame.KEYDOWN(键盘输入有效)以及一些键位pygame.K_UP,pygame.K_DOWN等
壁球小游戏
这个小游戏实例,ikun们一定不要错过!!!
import pygame,sysdef RGBChannel(a): #计算bgcolor三原色rgb的数值(0-255)return 0 if a<0 else (255 if a>255 else int(a))
pygame.init()
size=width,height=600,400 #设定窗口指定规格
speed=[1,1]
screen=pygame.display.set_mode(size,pygame.RESIZABLE)
ball=pygame.image.load("caixukun.jpg")
pygame.display.set_caption("Pygame壁球")
pygame.display.set_icon(ball) #改变窗口图标ballrect=ball.get_rect()
fps=300 #Frames
fclock=pygame.time.Clock() #pygame内置的时钟
still=False
bgcolor=pygame.Color("black")while True:for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()elif event.type == pygame.KEYDOWN:if event.key == pygame.K_UP:speed[1]+=1 if speed[1] >= 0 else speed[1]-1elif event.key == pygame.K_DOWN:speed[1]-=1 if speed[1] > 0 else speed[1]+1elif event.key == pygame.K_LEFT:speed[0] -=1 if speed[0] > 0 else speed[0]+1elif event.key == pygame.K_RIGHT:speed[0] +=1 if speed[0] >= 0 else speed[0]-1elif event.type == pygame.K_ESCAPE:sys.exit()elif event.type == pygame.RESIZABLE:size = width, height = event.size[0], event.size[1] # 得到当前修改后的屏幕分辨率screen = pygame.display.set_mode(size, pygame.RESIZABLE)elif event.type == pygame.FULLSCREEN:size = width, height = event.size[0], event.size[1] # 得到当前修改后的屏幕分辨率screen = pygame.display.set_mode(size, pygame.FULLSCREEN)ballrect=ballrect.move(speed)if pygame.display.get_active():ballrect=ballrect.move(speed[0],speed[1])if ballrect.left<0 or ballrect.right>width:speed[0]=-speed[0]if ballrect.top<0 or ballrect.bottom>height:speed[1]=-speed[1]bgcolor.r=RGBChannel(ballrect.left*255/width)bgcolor.g=RGBChannel(ballrect.top*255/height)bgcolor.b=RGBChannel(min(speed[0],speed[1])*255/max(speed[0],speed[1],1))screen.fill(bgcolor)screen.blit(ball,ballrect) #在每一次运动中,保证图像跟着矩形运动pygame.display.update()fclock.tick(fps)
代码实现功能:
1、可以通过键盘上下左右调控速度
2、在碰到窗口边界反弹
3、根据图片所在区域不同改变背景颜色
ikun们不要错过啊。。。。。。(匿...)
来源:慕课-Python游戏开发入门
更新:Python第三方库pygame学习笔记(二)
慢慢爬。。
Python第三方库pygame学习笔记(一)相关推荐
- python的pygame库使用方法_python基础教程使用Python第三方库pygame写个贪吃蛇小游戏...
今天看到几个关于pygame模块的博客和视频,感觉非常有趣,这里照猫画虎写了一个贪吃蛇小游戏,目前还有待完善,但是基本游戏功能已经实现,下面是代码: # 导入模块 import pygame impo ...
- 《利用python进行数据分析》第二版 第13章-Python建模库介 学习笔记
文章目录 一.pandas与建模代码结合 二.用patsy创建模型描述 Patsy公式中的数据转换 分类数据与Pastsy 三.statsmodels介绍 评估线性模型 评估时间序列处理 四.scik ...
- python第三方库之学习pyserial库--串口通信
pyserial串口通信库 1.安装pyserial库 2.填写串口参数的注意事项 3.简单封装一下 4.碰到的bug 1.安装pyserial库 pip install pyserial versi ...
- python第三方库之学习flask-restful
flask-restful 前言 一.安装 二.flask-restful初体验 前言 为什么要用Flask-restful? RESTful API返回的不是HTML,而是机器能直接解析的数据 随着 ...
- python turtle库seth_Python学习笔记_3 turtle库使用
1 坐标命令 1.1建立绘图窗体--setup(width,height,startx,starty) 建立绘图窗体 #注意:后两个参数可以不指定,窗体将在屏幕中心 1.2 绝对坐标以及goto(x, ...
- python第三方库pygame的使用
作用:pygame一般用来做游戏 注意:1.在使用pygame提供的功能之前,需要调用init方法 2.在游戏结束前需要调用 quit 方法 pygame中的各个函数: 1.pygame.init() ...
- python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑
python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑 许多人在安装Python第三方库的时候, 经常会为一个问题困扰:到底应该下载什么格式的文件? 当我们点开下载页时, 一 ...
- python3第三方库手册_python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑...
python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑 许多人在安装Python第三方库的时候, 经常会为一个问题困扰:到底应该下载什么格式的文件? 当我们点开下载页时, 一 ...
- Python可视化物理随机过程---pygame学习笔记2
Python可视化物理随机过程-pygame学习笔记2 文章目录 Python可视化物理随机过程---pygame学习笔记2 一.扩散现象的简单的介绍 二.代码实现 三.运行代码的效果展示 四.总结 ...
最新文章
- Visual C++ 2011-8-15
- 【EventBus】EventBus 源码解析 ( 注册订阅者总结 | 从封装的数据结构角度分析 EventBus )
- VS2012 颜色配置成黑色
- 52单片机iic读写c语言,如何52单片机的I2C读写24C08程序问题排查修改
- 关于 部署方面研究 Visual Studio 2013
- 如何用html构建ios应用,使用HTML5构建iOS原生APP(2)
- oracle 11g r2 安装过程与卸载详细图解
- python之常用的数据类型
- BP 神经网络的非线性系统建模——非线性函数拟合
- usb 驱动之usbip
- PR如何调整输出视频的分辨率?
- java代码实现Excel irr计算
- 水星路由器是linux系统,Mercury水星无线路由器设置教程(Windows XP系统)
- SAP 接口开发技术和工具
- C语言的部分杂碎知识
- 中国移动光宽带 光猫 超级用户管理员账号密码
- C#读写导入导出Excel表格模板(NPOI)
- 武汉纺织大学计算机科学校区在哪,武汉纺织大学是一本吗 重点专业是什么 有几个校区及校区地址...
- windows下nginx配置OpenSSL自签名证书
- PMBOK6 启动会和开工会的区别