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基本使用】相关推荐

  1. pygame是python的一个库吗,python学习pygame,,基本库导入impor

    python学习pygame,,基本库导入impor 基本库导入 import pygame import sys from pygame.locals import * 初始化 pygame.ini ...

  2. 在Ubuntu 16.04.5 LTS上安装pygame模块

    简介 Pygame是跨平台Python模块,专为电子游戏设计,包含图像.声音.建立在SDL基础上,允许实时电子游戏研发而无需被低级语言(如机器语言和汇编语言)束缚. 安装 sudo pip insta ...

  3. pygame做的著名游戏_用python写游戏之2D跑酷游戏(一)

    2D的跑酷游戏有很多,著名的例如Chrome的彩蛋小游戏,手机上的天天酷跑等. 打开Chrome浏览器输入 chrome://dino/,按空格激活彩蛋 这篇文章来分析一下这类横版跑酷游戏的主角奔跑, ...

  4. 用74l138实现一个一位全减器_用pygame实现一个简单的五子棋游戏

    准备 python基础相关准备: pygame的基础知识,参考目光博客的"用Python和Pygame写游戏-从入门到精通" 安装python 3.8.0 在python官网下载, ...

  5. 【Python】在Mac系统中安装Pygame

    我们通过Homebrew来安装Pygame,Homebrew是Mac OSX上的软件包管理工具,如果还没安装Homebrew,将以下命令粘贴至终端先安装Homebrew /usr/bin/ruby - ...

  6. 《Python和Pygame游戏开发指南》——2.16 pygame.display.update()函数

    本节书摘来自异步社区<Python和Pygame游戏开发指南>一书中的第2章,第2.16节,作者[美]Al Sweigart(斯维加特), 李强 译,更多章节内容可以访问云栖社区" ...

  7. 基于Pygame写的翻译方法

    发布时间:2018-11-01 技术:pygame+easygui 概述 实现一个翻译功能,中英文的互相转换.并可以播放翻译后的内容. 翻译接口调用的是百度翻译的api接口. 详细 代码下载:http ...

  8. Python培训教程分享:如何实现pygame的初始化和退出操作?

    本期小编为大家介绍的Python培训教程是关于"如何实现pygame的初始化和退出操作?"的内容,pygame模块针对不同的开发需求提供了不同的子模块,例如显示模块.字体模块.混音 ...

  9. 100行代码,使用 Pygame 制作一个贪吃蛇小游戏!

    作者 | 周萝卜 来源 | 萝卜大杂烩 相信我们大家都玩过贪吃蛇游戏,今天我们就从头一起来写一个贪吃蛇小游戏,只需要100多行的代码就完成了. 用到的 Pygame 函数 贪吃蛇小游戏用到的函数 功能 ...

  10. 基于PyGame的乒乓球和滑雪小游戏

    基于PyGame的乒乓球和滑雪游戏 昝道广 概述 前言 乒乓球游戏规则 乒乓球游戏图形界面 乒乓球游戏部分代码 滑雪小游戏图形界面 滑雪小游戏规则 滑雪小游戏部分代码 技术分析 后记 前言 首先阿广确 ...

最新文章

  1. 算数基本定理(例题:LightOJ1341)
  2. 软件项目管理0720:读一页项目管理-项目子目标
  3. 前端学习(1601):状态提升
  4. 服务器操作系统与安装步骤,服务器操作系统与安装步骤
  5. 2014 UESTC Training for Data Structures D - 长使英雄泪满襟
  6. [转载]C#深拷贝的方法
  7. js中对datagrid ,repeater的checkbox进行全选反选
  8. Landsat9卫星简介
  9. 圣诞收到最搞笑的短信两则
  10. 服务器虚拟化和vcpu介绍
  11. 【学习目录】支持向量机原理网络资料整理
  12. java 通过onvif抓取海康摄像头图片
  13. python3D绘图Axes3D函数详解
  14. 垃圾分类全套技术方案
  15. 谷歌浏览器64位浏览器网页显示不完全修改方法
  16. ios逆向学习环境安装(一)
  17. PCR主成分回归预测MATLAB代码 代码注释清楚。 main为主程序,读取EXCEL数据
  18. 蜂蜜橙文案:水果蜂蜜橙的文案图片,水果蜂蜜橙朋友圈卖货文案
  19. 用计算机亩换算成平方,亩平米换算(平方米换算亩计算器)
  20. JAVA I/O流 字符流和字节流、节点流和处理流(包装流、过滤流)、缓冲流

热门文章

  1. 自由程序员们是如何赚钱的
  2. 什么是幂等性、幂等性解决方案
  3. js php 变量声明,javascript变量声明实例分析_javascript技巧
  4. 落花响应html,史上最“脑残”的“抢火车票”程序(node.js版) - 落花落雨不落叶...
  5. 索尼官网的产品怎么样?
  6. 计算机术语CAE是指,计算机应用基础 1
  7. win10去除桌面快捷方式小箭头
  8. echarts,x轴y轴,配置参数详情
  9. windows下连接服务器
  10. MySQL 函数、数字函数、日期函数、运算符