pygame模块学习
安装pygame
windows下安装pygame下载后找到的是.whl文件,就将他赋值到你的项目文件夹中,运行cmd,切换到改文件所在的文件夹,并使用pip运行它。
运行命令如下:
python -m pip install --user pygame-1.9.2-cp35-cp35m-win_amd64.whl
- 不过要注意的是这个pygame兼容的是python3.5版本的,所以需要下载python3.5的来编程。我原先是python3.6所以也遇到pip失败,无法运行pygame的问题。
RGN设置
模块pygame包含开发游戏所需功能。模块sys用来退出游戏。
Pygame中,颜色是以RGB值指定的。由红、绿、蓝色组成。每个值的取值范围都是0~255。
颜色值(255,0,0)表示红色。
颜色值(0,255,0)表示绿色。
颜色值(0,0,255)表示蓝色。
pygame中的模块
1. display模块
pygame.display.set_mode((1200,800))
创建显示窗口大小为(1200,800).pygame.display.set_mode()
返回的surface表示整个游戏窗口。pygame.display.flip()
将不断更新屏幕,以显示元素的新位置,并在原来的位置隐藏元素,从而营造平滑移动的效果。
2. surface对象
surface是屏幕的一部分。
surface.blit(rect1,rect2)
表示的是rect1画在rect2之上surface.fill(color)
用背景色填充屏幕。color是接受RGB元组的实参。pygame.display.set_mode()
返回的surface表示整个游戏窗口。pygame.image.load(“src”)
返回的是指定目录图片的surface对象
3.rect对象
rect对象是surface中的属性
rect中有四个属性
left, top, width/right, height/bottom
surface.get_rect()
返回的是调用实例即为surface对象的rect对象要将
surface对象
居中,设置相应rect对象的属性center、centerx或centery
其中centerx、centery只能存储整数值,而center可以存储小数值要让游戏元素于屏幕边缘对齐,可使用属性
top、bottom、left或right
要调整游戏元素的水平或垂直位置,可是使用属性
x或y
4. event模块
pygame.event.get()
获得被注册的事件。
每次按键被按下时都会被注册为一个KEYDOWN事件
每次按键被松开时都会被注册为一个KEYUP事件、结合moving_方向
的标志来实现持续移动。event.type
是返回event的类型event.key
是返回event类型的值
#在每次的主循环中检测事件
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_RIGHT:weisuo.rect.centerx += 1elif event.key == pygame.K_LEFT:weisuo.rect.centerx -= 1创建ship类```python
import pygame
class Ship():def __init__(self,screen):'''初始化飞船并设置其初始位置'''self.screen = screen#加载飞船图像并返回获取一个表示飞船的surfaceself.image = pygame.image.load("images/ship.bmp")#获取相应surface的属性rectself.rect = self.image.get_rect()#获取表示屏幕的矩形rectself.screen_rect = screen.get_rect()'''使其与屏幕下边缘对齐并水平居中'''#将每艘新飞船放在屏幕底部中央(screen_rect.centerx:是指飞船中心的x坐标)self.rect.centerx = self.screen_rect.centerx#(screen_rect.bottom:是指飞船下边缘的y坐标)self.rect.bottom = self.screen_rect.bottomdef blitme(self):'''在指定位置绘制飞船,位置是根据rect中设置好的属性。'''self.screen.blit(self.image,self.rect)
以向右为例:按下右箭头键时,我们将这个标志设置为True;而松开时将标志重新设置为False
5.sprite模块
pygame.sprite.Sprite就是Pygame里面用来实现精灵的一个类,使用时,并不需要对它实例化,只需要继承他,然后按需写出自己的类就好了,因此非常简单实用。
update方法
:适用于控制sprite对象行为的方法。基类中该方法没有任何实现这是等着我们自己去覆盖的。add方法
:将该sprite对象增加到group中,存疑。remove方法
:sprite对象会从group中删掉。kill方法
:将该sprite对象从所有groups中删掉。groups方法
:返回sprite对象所在的所有组。alive方法
:判断sprite方法是否还在组中。pygame.sprite.groupcollide()
在所有的精灵遍历查找是否有两个组互相重叠,若有就在它返回的字典中添加一个键值对。pygame.sprite.spritecollideany(sprite,group)
接受两个实参:一个精灵和一个编组。它检查编组是否有成员与精灵发生碰撞,并在找到与精灵发生了碰撞的成员后就停止遍历编组。若发生了碰撞,返回第一个与sprite发生碰撞的group。若没发生碰撞 ,返回None。 这个方法主要用于测试。
5.1 pygame.sprite.Group类
精灵组管理类,用来统一管理所有的精灵,它很适合处理精灵列表,有添加,移除,绘制,更新等方法。
6.draw模块
pygame.draw.rect()
draw a rectanglepygame.draw.rect(surface, color, rect)
-> Rectpygame.draw.rect(surface, color, rect, width=0)
-> Rect
这里是用draw模块在surface
屏幕上画出一个color
长方形rect
,形参surface是主屏幕,rect是要画的矩形。
7.font模块
pygame模块学习相关推荐
- python的pygame模块详解_python游戏模块学习之pygame常规操作讲解
pygame常规操作 导入模块 import pygame # 导入pygame模块 from sys import exit # 导入退出鼠标点击事件 from math import pi # 导 ...
- Python游戏开发,pygame模块,Python实现打砖块小游戏
前言: 本期我们将利用python制作一个打砖块小游戏,废话不多说,让我们愉快地开始吧~ 效果展示 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RdjcY4gn-16 ...
- Python游戏开发,pygame模块,Python实现过迷宫小游戏
前言 今天为大家带来解闷用的过迷宫小游戏分享给大家好了.让我们愉快地开始吧~ 效果展示 开发工具 Python版本: 3.6.4 相关模块: pygame模块: 以及一些Python自带的模块. 环境 ...
- 用python+pygame模块实现一波刮刮卡效果,图像处理之路(附源码)
前言 利用python模拟了刮开刮刮卡效果,让我们愉快地开始吧~ 效果展示 开发工具 Python版本: 3.6.4 相关模块: pygame模块: 以及一些python自带的模块. 环境搭建 安装P ...
- pip install pygame_使用 Python 和 Pygame 模块构建一个游戏框架!
这系列的第一篇通过创建一个简单的骰子游戏来探究 Python.现在是来从零制作你自己的游戏的时间. 在我的这系列的第一篇文章 中, 我已经讲解如何使用 Python 创建一个简单的.基于文本的骰子游戏 ...
- pygame为游戏添加背景_万能的Python和Pygame模块构建一个游戏框架
通过创建一个简单的骰子游戏来探究 Python.现在是来从零制作你自己的游戏的时间. 在我的这系列的第一篇文章中, 我已经讲解如何使用 Python 创建一个简单的.基于文本的骰子游戏.这次,我将展示 ...
- python pygame模块怎么写游戏_使用 Python 和 Pygame 模块构建一个游戏框架
这系列的第一篇通过创建一个简单的骰子游戏来探究 Python.现在是来从零制作你自己的游戏的时间. 在我的这系列的第一篇文章 中, 我已经讲解如何使用 Python 创建一个简单的.基于文本的骰子游戏 ...
- python中的pygame模块使用方法_Pygame的基本使用
Pygame有很多模块,每个模块又有很多方法,在此不能够逐一讲解,所以,我们通过一个实例来学习Pygame,然后再分解代码,讲解代码中的模块. 例:制作一个跳跃的小球游戏. 创建一个游戏窗口,然后在窗 ...
- python3实例车代码_Python编程pygame模块实现移动的小车示例代码
Pygame是跨平台Python模块,专为电子游戏设计,包含图像.声音.建立在SDL基础上,允许实时电子游戏研发而无需被低级语言(如机器语言和汇编语言)束缚. 最近一个星期学习了一下python的py ...
- pygame为游戏添加背景_为游戏添加背景使用Python和Pygame模块构建一个游戏框架
这系列的第一篇通过创建一个简单的骰子游戏来探究 Python.现在是来从零制作你自己的游戏的时间. 在我的这系列的第一篇文章 中, 我已经讲解如何使用 Python 创建一个简单的.基于文本的骰子游戏 ...
最新文章
- 4.QT4中的connect的实现
- 简析并查集[C/C++]
- UIControl事件---iOS-Apple苹果官方文档翻译
- winform直接控制云台_速学指南,2分钟学会Feiyu pocket口袋云台的隐藏功能操作
- python 公众号菜单_Python脚本--微信公众号自定义菜单的创建及获取
- 数据结构之查找算法:B树
- 吐血整理!12种通用知识图谱项目简介
- 微软发布面向企业区块链网络的Coco Framework
- Kaggle 商品销量预测季军方案出炉,应对时间序列问题有何妙招
- 2019湖南多校第四场
- Better Explained 以通俗易懂的语言阐释数学
- IDEA构建JDK_1.8源码阅读环境过程详解
- 连载31:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)...
- getDerivedStateFromProps填坑
- lan和adsl是什么信号_光纤、以太网、ADSL上网有什么区别?
- 固态加装机械计算机不显示,笔记本电脑装了固态硬盘,机械硬盘却无法识别
- 相机光学(五)——对运动物体的曝光时间的计算
- linux安装识别不到scsi硬盘,Linux下不重起识别SCSI硬盘
- Android隐藏状态栏实现沉浸式体验
- 常见电路面试题20道
热门文章
- 【笔试面试】携程笔试面试注意事项
- Unity 通过代码修改材质球属性
- 浅谈大数据时代之影响力
- 定义一个数组,里面存放星期一、星期二…… 直到星期日的英语写法,分别按倒序和排序后的顺序显示 数组所有元素。
- Addressing Failure Prediction by Learning Model Confidence
- python arp断网攻击_ARP断网攻击怎么解决
- 解决mysql 1864 主从错误
- ios怎么更新测试软件,苹果iOS13 beta3测试版升级教程 iOS13 beta3更新方法
- 云服务器与实体服务器性能,实体服务器和云服务器 的利与弊
- 听听那冷雨 -- 余光中