pygame库基础模块汇总

2023-10-31

目录

1.安装

2.使用

3.display显示模块

4.draw模块

5.event模块

① event可以判断的事件

 ②键盘事件key

6.font模块 

7.time模块

8.基本框架


Pygame 是一个专门用来开发游戏的 Python 模块,主要为开发、设计 2D 电子游戏而生,它是一个免费、开源的第三方软件包,支持多种操作系统,具有良好的跨平台性(比如 Windows、Linux、Mac 等)

1.安装

(使用win+r打开运行,输入cmd),接着输入以下代码

pip3 install pygame

2.使用

在使用时,先引入pygame库,然后对其进行初始化

import pygame  #导入pygame库
pygame.init()  #pygame库初始化

 pygame.quit()   #取消初始化

3.display显示模块

pygame.display.set_mode((width,height))  #创建一个窗口对象(宽高)
pygame.display.set_caption("游戏")       #更改窗口的标题为游戏
pygame.display.get_surface()	         #获取当前显示的 Surface 对象。
pygame.display.flip()	                 #更新整个待显示的 Surface 对象到屏幕上。(一般来说第一次更新用flip,后续更新使用update)
pygame.display.update()	                 #更新部分软件界面显示。
pygame.display.Info()	                 #产生一个 VideoInfo 对象,包含了显示界面的相关信息。
pygame.display.set_icon()	             #设置左上角的游戏图标,图标尺寸大小为 32*32。
pygame.display.iconify()	             #将显示的主窗口即 Surface 对象最小化,或者隐藏。
pygame.display.get_active()	             #当前显示界面显示在屏幕上时返回 True,如果窗口被隐藏和最小化则返回 False。
pygame.display.get_driver()              #获取pygame显示后端的名称
pygame.display.toggle_fullscreen()       #切换全屏显示和窗口显示
pygame.display。set_palette()            #为索引显示设置显示调色板

填充颜色:

import pygame
a = (0,0,0)  #使用rgb表定义黑色
screen = pygame.display.set_mode((600,800))

screen.fill(a)         #填充颜色

pygame.display.flip()  #刷新屏幕

4.draw模块


pygame.draw.rect(surface, color, rect, width)                #绘制矩形
pygame.draw.polygon(surface, color, points, width)           #绘制多边形
pygame.draw.circle(surface, color, pos, radius, width=0)     #根据圆心和半径绘制圆形
pygame.draw.ellipse(surface, color, Rect, width=0)            #根据限定矩形绘制一个椭圆形
pygame.draw.line(surface, color, s_pos, e_pos, width=1)      #绘制线段
pygame.draw.lines(surface, color, closed, pointlist, width=1)      #绘制多条连续的线段
pygame.draw.aaline(surface, color, startpos, endpos, blend=1)      #绘制抗锯齿的线段
pygame.draw.aalines(surface, color, closed, pointlist, blend=1)    #绘制多条连续的线段

surface:游戏主窗口
color:颜色
rect:位置和尺寸大小
width:线的宽度
pos:圆心位置
radius:半径
s_pos:起始位置
e_pos:终点位置
pointlist:参数值列表

5.event模块

pygame.event.get()	#从队列中获取事件  在后续获取鼠标键盘操作时可以得到应用

pygame.event.pump()	#pygame内部自动处理事件
pygame.event.poll()	#从队列中获取"一个"事件
pygame.event.wait()	#等待并从队列中获取一个事件
pygame.event.peek()	#检测某类型事件是否在队列中
pygame.event.clear()#从队列中删除所有的事件
pygame.event.Event()#创建一个新的事件对象

① event可以判断的事件

QUIT	        #用户按下窗口的关闭按钮	
ATIVEEVENT  	#Pygame被激活或者隐藏
	
KEYDOWN	        #键盘按下	
KEYUP	        #键盘放开	

MOUSEMOTION	    #鼠标移动 
MOUSEBUTTONDOWN	#鼠标按下 	
MOUSEBUTTONUP	#鼠标放开 	

JOYAXISMOTION	#游戏手柄(Joystick or pad) 移动 	
JOYBALLMOTION 	#游戏球(Joy ball) 移动  
JOYHATMOTION	#游戏手柄(Joystick) 移动    	
JOYBUTTONDOWN	#游戏手柄按下	
JOYBUTTONUP	    #游戏手柄放开    	

VIDEORESIZE	    #Pygame窗口缩放  	
VIDEOEXPOSE	    #Pygame窗口部分公开

 ②键盘事件keyK_BACKSPACE    退格键

1 K_TAB       制表键

K_CLEAR       清除键

K_RETURN   回车键

K_PAUSE       暂停键

K_ESCAPE   退出键

K_SPACE       空格键

K_0...K_9   0...9

K_a...Kz   a...z

K_DELETE   删除键

K_KP0..K_KP9  

0(小键盘)...9(小键盘)

K_F1..K_F15 F1...F15

K_UP       向上

K_DOWN       向下

6.font模块 

pygame.font.SysFont()	        #从系统字体库创建一个Font对象
pygame.font.Font()	            #从一个字体文件创建一个Font对象
pygame.font.init()	            #初始化字体模块
pygame.font.quit()	            #还原字体模块
pygame.font.get_fonts()	        #获取所有可使用的字体

 font模块主要应用在字体的创建上。

 pygame.font.SysFont("方正粗黑宋简体", size)  #字体字号
 font.render(text, True, color)              #文本 光滑 颜色

7.time模块

pygame.time.get_ticks() 	#以毫秒为单位获取时间
pygame.time.wait()	        #暂停
pygame.time.set_timer()	    #创建一个定时器,即每隔一段时间,去执行一些动作
pygame.time.Clock()	        #创建一个时钟对象

8.基本框架

对于pygame库要现有一个基本的主框架,然后在主框架中逐步填入每一条应用代码,测试每一段pygame的相关操作能够运行。

import pygame   #导入pygame库
import sys      #退出所使用的sys库

pygame.init()   #初始化pygame
pygame.display.set_mode((800,600))              #创建一个宽度为八百、高度为六百的窗口

pygame.display.set_caption("无聊.jpg 的小游戏")  #设置当前窗口标题
pygame.display.flip()      #刷新屏幕 

while True:   #设置游戏的主循环,保证页面不闪退,并且可以使用鼠标关闭
    for envent in pygame.event.get():   #监听用户事件
        if envent.type == pygame.QUIT:  # 判断用户是否点击了关闭按钮
            pygame.quit()  #卸载pygame所有程序
            sys.exit()     #用户退出


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pygame库基础模块汇总 的相关文章

  • xlrd.biffh.XLRDError:Excel xlsx 文件;不支持[重复]

    这个问题在这里已经有答案了 我正在尝试使用读取启用宏的 Excel 工作表pandas read excel与 xlrd 库 它在本地运行良好 但是当我尝试将其推送到 PCF 时 我收到此错误 2020 12 11T21 09 53 441
  • PyQt:如何通过匿名代理使用网页

    这真让我抓狂 我想在 QWebPage 中显示一个 url 但我想通过匿名代理来实现 Code setting up the proxy proxy QNetworkProxy proxy setHostName 189 75 98 199
  • Python 2.7 将比特币私钥转换为 WIF 私钥

    作为一名编码新手 我刚刚完成了教程 教程是这样的 https www youtube com watch v tX XokHf nI https www youtube com watch v tX XokHf nI 我想用 1 个易于阅读
  • Tweepy StreamListener 到 CSV

    我是 python 新手 我正在尝试开发一个应用程序 使用 Tweepy 和 Streaming API 从 Twitter 检索数据并将数据转换为 CSV 文件 问题是此代码不会创建输出 CSV 文件 也许是因为我应该将代码设置为在实现例
  • 更新 Sqlalchemy 中的多个列

    我有一个在 Flask 上运行的应用程序 并使用 sqlalchemy 与数据库交互 我想用用户指定的值更新表的列 我正在使用的查询是 def update table value1 value2 value3 query update T
  • 查找模块中显式定义的函数 (python)

    好的 我知道您可以使用 dir 方法列出模块中的所有内容 但是有什么方法可以仅查看该模块中定义的函数吗 例如 假设我的模块如下所示 from datetime import date datetime def test return Thi
  • 更改 Altair 中的构面标题位置?

    如何将方面标题 在本例中为年份 移动到每个图的上方 默认值似乎位于图表的一侧 这可以轻易改变吗 import altair as alt from vega datasets import data df data seattle weat
  • numpy 使用 datetime64 进行数字化

    我似乎无法让 numpy digitize 与 datetime64 一起使用 date bins np array np datetime64 datetime datetime 2014 n 1 s for n in range 1 1
  • python是带有字符串的运算符行为[重复]

    这个问题在这里已经有答案了 我无法理解以下行为 我正在创建 2 个字符串 并使用 is 运算符来比较它 对于第一种情况 它的工作方式有所不同 对于第二种情况 它按预期工作 当我使用逗号或空格时 它显示是什么原因False与比较is当没有使用
  • 使用 scipy curve_fit 拟合噪声指数的建议?

    我正在尝试拟合通常按以下方式建模的数据 def fit eq x a b c d e return a 1 np exp x b c np exp x d e x np arange 0 100 0 001 y fit eq x 1 1 1
  • Python多处理错误“ForkAwareLocal”对象没有属性“连接”

    下面是我的代码 我面临着多处理问题 我看到这个问题之前已经被问过 我已经尝试过这些解决方案 但它似乎不起作用 有人可以帮我吗 from multiprocessing import Pool Manager Class X def init
  • 将文本注释到轴并对齐为圆

    我正在尝试在轴上绘制文本并将该文本与圆对齐 更准确地说 有一些具有不同坐标 x y 的点位于该圆内 并使用以下命令创建 ax scatter x y s 100 我想用圆圈连接并标记每个点 Cnameb 文本的坐标由 xp yp 定义 因此
  • 在 Sphinx 中,有没有办法在声明参数的同时记录参数?

    我更喜欢在声明参数的同一行记录每个参数 根据需要 以便应用D R Y http en wikipedia org wiki Don t repeat yourself 如果我有这样的代码 def foo flab nickers a ser
  • Python 声音(“铃声”)

    我想让一个 python 程序在完成任务时通过发出嘟嘟声来提醒我 目前 我使用import os然后使用命令行语音程序说 进程完成 我更愿意它是一个简单的 铃 我知道有一个函数可以用于Cocoa apps NSBeep 但我认为这与此没有太
  • Python]将两个文本文件合并为一个(逐行)[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我是蟒蛇新手 我想做的是将文件 a 和文件 b 逐行合并到一个文件中 例如 text file a a n b n c text fi
  • 是否可以将 pd.Series 分配给无序 pd.DataFrame 中的列而不映射到索引(即不重新排序值)?

    在 Pandas 中创建或分配新列时 我发现了一些意外的行为 当我对 pd DataFrame 进行过滤或排序 从而混合索引 然后从 pd Series 创建新列时 Pandas 会重新排序该系列以映射到 DataFrame 索引 例如 d
  • 如何使用 matplotlib 为圆柱体的每个单独面添加颜色

    我正在尝试为圆柱体的每个面着色 但是我不确定如何进行 我尝试了以下方法 for i in range 10 col append for i in range 10 for j in range 20 col i append plt cm
  • 如何在 robobrowser-python 中发出 POST 请求

    http robobrowser readthedocs org en latest api html http robobrowser readthedocs org en latest api html 我正在尝试使用 APIbrows
  • 更改 Python Cmd 模块处理自动完成的方式

    我有一个 Cmd 控制台 设置为自动完成 Magic the Gathering 收藏管理系统的卡牌名称 它使用文本参数在数据库中查询卡片 并使用结果自动完成 建议卡片 然而 这些卡片名称有多个单词 Cmd 会从last到行尾的空间 例如
  • 缓存 Flask-登录 user_loader

    我有这个 login manager user loader def load user id None return User query get id 在我引入 Flask Principal 之前它运行得很好 identity loa

随机推荐

  • STM32端口功能详情图

    硬件接口对照表 注释标识 对应芯片IO 上下拉 功能 接口封装 电源归属 可外接IO 1 无 无 电源接口 DC 5 5 2 1 无 不可以 2 无 无 电源开关 无 3 无 无 电源接口 XT30 4 无 无 DC5V4A输出 USB母座
  • easycms v5.5 分析

    前言 这个awd打的悲 后台默认用户名密码为admin admin 但是几乎所有人都改了 而且一进去看到这个cms就有点懵逼 都不知道这个cms是干嘛的 没用过相似的cms 虽然网上找出了很多相关的漏洞 但是不知道为什么一个都没用上 或者说
  • Qt画圆弧

    Qt画圆弧
  • 第三步:脑波提取alpha,beta,delta,theta

    4 brain power py import os from process eeg import iir processing import pandas as pd import numpy as np def mkdir path
  • shell编程--函数

    函数 定义格式 1 function name command1 commandn 2 function function name command1 commandn 注意 所有函数需要在使用前被定义 一般将函数定义放在脚本开始地方 自定
  • 华为OD机试 - 最长的完全交替连续方波信号(Java)

    题目描述 输入一串方波信号 求取最长的完全连续交替方波信号 并将其输出 如果有相同长度的交替方波信号 输出任一即可 方波信号高位用1标识 低位用0标识 如图 说明 一个完整的信号一定以0开始然后以0结尾 即010是一个完整信号 但101 1
  • 选Redis做MQ的人,是脑子里缺根弦儿吗?

    V xin ruyuan0330 获得600 页原创精品文章汇总PDF 目录 一 前情提示 二 unack消息的积压问题 三 如何解决unack消息的积压问题 四 高并发场景下的内存溢出问题 五 低吞吐量问题 六 合理设置prefetch
  • 数据库查询出结果后将时间排序后取第一条

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 查询出结果后将时间排序后取第一条 select from a where time lt 2017 03 29 19 30 36 order by time desc li
  • Hive 表操作(HIVE的数据存储、数据库、表、分区、分桶)

    1 Hive的数据存储 Hive的数据存储基于Hadoop HDFS Hive没有专门的数据存储格式 存储结构主要包括 数据库 文件 表 试图 Hive默认可以直接加载文本文件 TextFile 还支持sequence file 创建表时
  • windows11 打开chrome浏览器闪屏黑屏问题

    windows11 家庭版打开chrome浏览器的时候 电脑闪屏 甚至长时间黑屏 不得不重启 修复方法 在Google Chrome中禁用 平滑滚动 1 打开chrome 然后输入在地址栏输入 chrome flags 2 搜索名为Smoo
  • 8招搞定XenServer虚拟机优化

    XenServer是一款虚拟机软件 他的免费版本功能相对强大 相比VMware的ESXi来说 所以现在很多企业简单应用上都会用这款软件 以减小开支 VMware收费实在是太贵了 一般的企业是承担不起的 一般虚拟化之后 一台宿主机上面都会运行
  • 也说MSDN

    看到iCynosure在介绍 MSDN使用经验 忍不住也进来加两句 平时很喜欢在IE里面用alt D来切换到地址栏 但是MSDN Explorer不支持这个快捷方式 经过一番研究发现可以通过Option里面的keyboard来自定义快捷键
  • react基础04--redux 管理数据

    react基础04 redux 管理数据 1 介绍 2 方法 案例 在多个组件中使用Store中的数据 规范 store 写法 修改Store中的数据 refs属性获取元素对象 redux thunk 中间件 3 注意事项 4 说明 1 介
  • 怎么在蓝桥杯多拿点分

    蓝桥杯常考的算法有 1 枚举 暴力 2 递归 3 贪心 4 搜索 dfs和bfs 等基础算法 难度比较大的是动态规划 严格按要求输出 不要画蛇添足地打印类似 请您输入 的多余内容 能用到的函数 比如sort next permutation
  • Matplotlib可视化(2)设置pyplot的rcParams

    pylot使用rc配置文件来自定义图形的各种默认属性 称之为rc配置或rc参数 通过rc参数可以修改默认的属性 包括窗体大小 每英寸的点数 线条宽度 颜色 样式 坐标轴 坐标和网络属性 文本 字体等 rc参数存储在字典变量中 通过字典的方式
  • 2.线程常见方法

    Java多线程文章目录 目录 设置优先级 join方法 sleep方法 sleep 实现秒表功能 常见面试题 setDaemon方法 设置优先级 同优先级别的线程 采取的策略就是先到先服务 使用时间片策略 如果优先级别高 被CPU调度的概率
  • Clion-安装

    Clion安装 1 注册Jetbraions账号 https www jetbrains com 2 学生认证使用 baipiao 一年 https www jetbrains com shop eform students 3 下载Min
  • Postman提取返回值

    json响应结果 Postman是做接口测试的 但是很多接口并不是直接就能测试的 需要一些预处理 比如登录的时候 需要传递一个token 如果是网页测试 一般打开登录页面的时候就会自动生成一个token 如果返回的是json格式 用Post
  • 4 SpringBoot整合RocketMQ实现消息发送和接收

    我们使用主流的SpringBoot框架整合RocketMQ来讲解 使用方便快捷 最终项目结构如下 具体步骤如下 第一步 我们新建一个父项目rocketmq test pom类型 主要是依赖管理 包括版本的管理 以及管理module子项目 p
  • pygame库基础模块汇总

    目录 1 安装 2 使用 3 display显示模块 4 draw模块 5 event模块 event可以判断的事件 键盘事件key 6 font模块 7 time模块 8 基本框架 Pygame 是一个专门用来开发游戏的 Python 模