【Pygame基本使用】
pygame是什么
pygame是跨平台Python模块,专门为电子游戏设计,包含图像、声音等;简单的说它是别人已经编写好的程序,并放在了一个类似库里,专门给别人使用的;
pygame的图形接口
https://www.jianshu.com/p/352f28c32865
pygame常用模块
模块名 | 功能 |
---|---|
pygame.cdrom | 访问光驱 |
pygame.cursors | 加载光驱 |
pygame.display | 访问显示设备 |
pygame.draw | 绘制形状、线和点 |
pygame.event | 管理事件 |
pygame.font | 使用字体 |
pygame.image | 加载和存储图片 |
pygame.joystick | 使用游戏手柄或类似的东西 |
pygame.key | 读取键盘按键 |
pygame.mixer | 声音 |
pygame.mouse | 鼠标 |
pygame.movie | 播放视频 |
pygame.music | 播放音频 |
pygame.overlay | 访问高级视频叠加 |
pygame.rect | 管理矩形区域 |
pygame.sndarray | 操作声音数据 |
pygame.sprite | 操作移动图像 |
pygame.surface | 管理图像和屏幕 |
pygame.surfarray | 管理点阵图像数据 |
pygame.time | 管理时间和帧信息 |
pygame.transform | 缩放和移动图像 |
图像的翻转、旋转、放缩
pygame.transform模块内置许多实现对图像、旋转、放缩的函数;
创建一个游戏窗口,宽和高设置为640×480
import sys # 导入sys模块
import pygame # 导入pygame模块pygame.init()
size=width,height=640,480
screen=pygame.display.set_mode(size)
现在我们将给这个窗口放进去一个图片填充,我们该怎么办呢
import sys
import pygamepygame.init() # 初始化pygame
size=width,height=700,600 #设置大小
screen=pygame.display.set_mode(size)# 显示窗口color=(0,0,0) # 设置填充颜色
charlotte=pygame.image.load("1.jpg") # 记载图片
charlotterect=charlotte.get_rect() # 获取矩形区域while True:for event in pygame.event.get():if event.type == pygame.KEYDOWN:sys.exit()screen.fill(color) # 填充颜色screen.blit(charlotte,charlotterect) # 将图片画到窗口上pygame.display.flip() # 更新全部显示
pygame.quit()
图中 while True里的代码,pygame.event.get()能获得事件队列,使用for…in遍历事件,然后根据type属性判断事件类型,这里事件处理与GUI类似,入event.type等于pygame.QUIT表示检测到关闭窗口事件,pygame.KEYDOWN表示键盘按下事件,pygame.MOUSEBUTTONDUWN表示鼠标按下事件等。
下面的是我们打算插入的图片,它是1920×1080的,而我们的窗口是700×600的,所以我们打算把它缩小一下,然后再添进去;
这里我们需要用到pygame.transform.scale(surface,(width,heigth)),参数1是一个包含需要使用图片的surface,第二个参数是放缩后图片大小的元组,它返回一个放缩后图片的surface
我们在程序中添加了该函数,结果如下
# 上面省略
charlotte=pygame.image.load("1.jpg")
charlotte=pygame.transform.scale(charlotte,size)
charlotterect=charlotte.get_rect() # 获取矩形区域
# 下面省略
它放缩后结果如下
它看起来不是那么的完美,主要是因为我们初始设置窗口的时候,它的比例与图片的长宽比例不同,我们又发现了surface的一些方法如下:
方法名 | 功能 |
---|---|
pygame.Surface.blit | 将一个图像画到另一个图像上 |
pygame.Surface.convert | 转换图像的像素格式 |
pygame.Surface.convert_alpha | 转换图像的像素格式,包含alpha通道的转换 |
pygame.Surface.fill | 使用颜色填充Surface |
pygame.Surface.get_rect | 获取Surface的矩形区域 |
我们发现了Surface的get_rect方法;以及Surface的get_heigth和get_width方法;
import sys
import pygame
charlotte=pygame.image.load("1.jpg")
charlotterect=charlotte.get_rect()
print(charlotterect)
print(charlotterect[0])
print(charlotterect[1])
print(charlotterect[2])
print(charlotterect[3])
# <rect(0, 0, 1920, 1080)>
# 0
# 0
# 1920
# 1080
我们发现get_rect的结果是一个四元组,并且它可以通过[]进行访问,它代表的是获取的图片的矩形区域的上下左右四个位置,所以最后我们可以这样做;
import sys
import pygamecharlotte=pygame.image.load("1.jpg") # 加载图片
charlotterect=charlotte.get_rect() # 获取矩形区域
size=(int(charlotterect[2]/3),int(charlotterect[3]/3)) # 这里把图片给缩小为原来的1/3
charlotte=pygame.transform.scale(charlotte,size) # 进行对原图片的缩小并返回一个缩小后图片的surfacepygame.init() # 初始化pygame
screen=pygame.display.set_mode(size) # 显示窗口
color=(0,0,0) # 设置填充颜色
# charlotte=pygame.transform.scale(charlotte,size)
# charlotterect= (charlotte.get_rect()) # 获取矩形区域
# pygame.init()
# size=width,height=700,600
# screen=pygame.display.set_mode(size)
# color=(0,0,0)while True:for event in pygame.event.get():if event.type == pygame.KEYDOWN:sys.exit()screen.fill(color)screen.blit(charlotte,charlotterect)pygame.display.flip()
pygame.quit()
最后结果如下
看起来很完美
【Pygame基本使用】相关推荐
- pygame是python的一个库吗,python学习pygame,,基本库导入impor
python学习pygame,,基本库导入impor 基本库导入 import pygame import sys from pygame.locals import * 初始化 pygame.ini ...
- 在Ubuntu 16.04.5 LTS上安装pygame模块
简介 Pygame是跨平台Python模块,专为电子游戏设计,包含图像.声音.建立在SDL基础上,允许实时电子游戏研发而无需被低级语言(如机器语言和汇编语言)束缚. 安装 sudo pip insta ...
- pygame做的著名游戏_用python写游戏之2D跑酷游戏(一)
2D的跑酷游戏有很多,著名的例如Chrome的彩蛋小游戏,手机上的天天酷跑等. 打开Chrome浏览器输入 chrome://dino/,按空格激活彩蛋 这篇文章来分析一下这类横版跑酷游戏的主角奔跑, ...
- 用74l138实现一个一位全减器_用pygame实现一个简单的五子棋游戏
准备 python基础相关准备: pygame的基础知识,参考目光博客的"用Python和Pygame写游戏-从入门到精通" 安装python 3.8.0 在python官网下载, ...
- 【Python】在Mac系统中安装Pygame
我们通过Homebrew来安装Pygame,Homebrew是Mac OSX上的软件包管理工具,如果还没安装Homebrew,将以下命令粘贴至终端先安装Homebrew /usr/bin/ruby - ...
- 《Python和Pygame游戏开发指南》——2.16 pygame.display.update()函数
本节书摘来自异步社区<Python和Pygame游戏开发指南>一书中的第2章,第2.16节,作者[美]Al Sweigart(斯维加特), 李强 译,更多章节内容可以访问云栖社区" ...
- 基于Pygame写的翻译方法
发布时间:2018-11-01 技术:pygame+easygui 概述 实现一个翻译功能,中英文的互相转换.并可以播放翻译后的内容. 翻译接口调用的是百度翻译的api接口. 详细 代码下载:http ...
- Python培训教程分享:如何实现pygame的初始化和退出操作?
本期小编为大家介绍的Python培训教程是关于"如何实现pygame的初始化和退出操作?"的内容,pygame模块针对不同的开发需求提供了不同的子模块,例如显示模块.字体模块.混音 ...
- 100行代码,使用 Pygame 制作一个贪吃蛇小游戏!
作者 | 周萝卜 来源 | 萝卜大杂烩 相信我们大家都玩过贪吃蛇游戏,今天我们就从头一起来写一个贪吃蛇小游戏,只需要100多行的代码就完成了. 用到的 Pygame 函数 贪吃蛇小游戏用到的函数 功能 ...
- 基于PyGame的乒乓球和滑雪小游戏
基于PyGame的乒乓球和滑雪游戏 昝道广 概述 前言 乒乓球游戏规则 乒乓球游戏图形界面 乒乓球游戏部分代码 滑雪小游戏图形界面 滑雪小游戏规则 滑雪小游戏部分代码 技术分析 后记 前言 首先阿广确 ...
最新文章
- 算数基本定理(例题:LightOJ1341)
- 软件项目管理0720:读一页项目管理-项目子目标
- 前端学习(1601):状态提升
- 服务器操作系统与安装步骤,服务器操作系统与安装步骤
- 2014 UESTC Training for Data Structures D - 长使英雄泪满襟
- [转载]C#深拷贝的方法
- js中对datagrid ,repeater的checkbox进行全选反选
- Landsat9卫星简介
- 圣诞收到最搞笑的短信两则
- 服务器虚拟化和vcpu介绍
- 【学习目录】支持向量机原理网络资料整理
- java 通过onvif抓取海康摄像头图片
- python3D绘图Axes3D函数详解
- 垃圾分类全套技术方案
- 谷歌浏览器64位浏览器网页显示不完全修改方法
- ios逆向学习环境安装(一)
- PCR主成分回归预测MATLAB代码 代码注释清楚。 main为主程序,读取EXCEL数据
- 蜂蜜橙文案:水果蜂蜜橙的文案图片,水果蜂蜜橙朋友圈卖货文案
- 用计算机亩换算成平方,亩平米换算(平方米换算亩计算器)
- JAVA I/O流 字符流和字节流、节点流和处理流(包装流、过滤流)、缓冲流
热门文章
- 自由程序员们是如何赚钱的
- 什么是幂等性、幂等性解决方案
- js php 变量声明,javascript变量声明实例分析_javascript技巧
- 落花响应html,史上最“脑残”的“抢火车票”程序(node.js版) - 落花落雨不落叶...
- 索尼官网的产品怎么样?
- 计算机术语CAE是指,计算机应用基础 1
- win10去除桌面快捷方式小箭头
- echarts,x轴y轴,配置参数详情
- windows下连接服务器
- MySQL 函数、数字函数、日期函数、运算符