简介
pygame是python一个包,专为电子游戏设计#安装
pip3 install pygame

#验证安装
# aliens 是pygame内置的一个小游戏,可以启动成功说明pygame安装成功
python3 -m pygame.examples.aliens
游戏的第一印象
  • 把一些静止的游戏绘制到游戏窗口
  • 根据用户的交互或其他情况,移动这些图片、产生动画效果
  • 根据图像直接是否发生重叠、判断敌机是否被摧毁等其他情况
 
游戏的初始化和退出
  • 要使用pygame提供的所有功能之前,需要调用init方法
  • 在游戏结束前需要调用一下quit方法
pygame.init()  #导入并初始化所有pygame模块,使用其他模块之前必须先调用init方法
pygame.quit() #卸载所有pygame模块,在游戏结束之前调用
游戏中的坐标系
  • 原点在左上角(0,0)
  • x轴水平方向向右,逐渐增加
  • y轴垂直方向向下,逐渐增加
 
pygame.Rect描述矩形区域
  • 在游戏中,所有可见的元素都是以矩形区域来描述位置
  • 要描述一个矩形区域有四个要素:(x,y)(width,height)
  • python专门提供了一个类pygame.Rect用于描述矩形区域
  • pygame.Rect是一个比较特殊的类,内部只是封装了一些数字计算
  • 不执行pygame.init()方法同样可以使用
Rect(x,y,width,height) -> Rect
"""
定义矩形区域描述英雄的位置和大小
输出英雄的坐标原点(x和y)
输出英雄的尺寸(宽度和高度)
"""
import pygame

# 参数:x点 y点 宽度 高度
rect = pygame.Rect(100,500,120,125) print(f'英雄的原点{rect.x},{rect.y}')
print(f'英雄的尺寸{rect.width},{rect.height}')
print(f'英雄的尺寸{rect.size}') # Rect的size会返回一个元组,第一个值是对象的宽度,第二个值是对象的高度
创建游戏主窗口和游戏主循环
可以将图片素材绘制到游戏的窗口上,开发游戏之前需要先知道如何建立游戏窗口
pygame提供了一个模块pygame.display用于创建、管理游戏窗口
pygame.displat.set_mode()  # 初始化游戏显示窗口
pygame.display.update() #刷新屏幕显示内容
set_mode方法
set_mode(resolution=(0,0),flages=0,depth=0) -> Surface
# resolution指定屏幕的宽和高,默认创建的窗口大小和屏幕大小一致
# flags参数指定屏幕的附加选项,例如是否全屏等,默认不需要传递
# depth参数表示颜色的位置,默认自动匹配
作用--创建游戏显示窗口
返回值--暂时可以理解为游戏的屏幕、游戏的元素都需要被绘制到游戏屏幕上
注意--必须使用变量记录set_mode方法的返回结果,因为后续所有的图像绘制都基于这个返回结果
pygame.init()

# 创建游戏窗口
screen = pygame.display.set_mode() # 游戏主循环
# 为了做到游戏程序启动后,不会立即退出,通常会在程序中增加一个游戏循环
#所谓游戏循环就是一个无限循环,可以做一些对应的操作
# pygame.event.get() 是获取当前窗口的事件 .type是获取事件的类型,如果类型是QUIT,就结束执行 runing = True
while runing:
for event in pygame.event.get():
if event.type == pygame.QUIT:
runing = False pygame.quit()

1.pygame快速入门-创建游戏窗口的更多相关文章

  1. PyGame快速入门

    pygame 快速入门 目标 项目准备 使用 pygame 创建图形窗口 理解 图像 并实现图像绘制 理解 游戏循环 和 游戏时钟 理解 精灵 和 精灵组 项目准备 新建 飞机大战 项目 新建一个 h ...

  2. 2.pygame快速入门-绘制图像

    介绍 在游戏中能够看到的游戏元素大都是图像 图像文件初始是保存在磁盘上的,如果需要使用,第一步就需要被加载到内存 要在屏幕上看到某一个图像的内容,需要按照三个步骤 使用pygame.image.loa ...

  3. 5.pygame快速入门-精灵和精灵组

    在之前案例中,图像加载.位置变化.绘制图像都需要编写代码分别处理 pygame提供了两个类简化开发步骤 pygame.sprite.Sprite #精灵,存储图像数据image和位置rect的对象 p ...

  4. 3.pygame快速入门-游戏循环及动画实现

    游戏循环的开始,意味着游戏的正式开始,游戏循环的作用如下 1.保证游戏不会直接退出 2.变化图像的位置--动画效果 3.检测用户交互--按键.鼠标等     游戏时钟 pyagame提供了一个pyga ...

  5. Springboot快速入门创建

    maven构建项目 1.访问http://start.spring.io/,进入快速创建工程的主页 可参考下图所示: 2.选择构建工具Maven Project.Spring Boot版本1.3.6以 ...

  6. SpringBoot学习之快速入门创建

    maven构建项目 1.访问http://start.spring.io/,进入快速创建工程的主页 可参考下图所示: 2.选择构建工具Maven Project.Spring Boot版本1.3.6以 ...

  7. 4.pygame快速入门-事件监听

    事件event:游戏启动后,用户针对游戏的所有操作 监听:在游戏循环中,判断用户的具体操作 pygame中通过pygame.event.get()可以获得当前用户所做动作的事件列表   事件监听 wh ...

  8. Gradle学习系列之一——Gradle快速入门

    这是一个关于Gradle的学习系列,其中包含以下文章: Gradle快速入门 创建Task的多种方法 读懂Gradle语法 增量式构建 自定义Property 使用java Plugin 依赖管理 构 ...

  9. Gradle学习系列之一——Gradle快速入门(转)

    这是一个关于Gradle的学习系列,其中包含以下文章: Gradle快速入门 创建Task的多种方法 读懂Gradle语法 增量式构建 自定义Property 使用java Plugin 依赖管理 构 ...

随机推荐

  1. "蔚来杯"2022牛客暑期多校训练营9 G Magic Spells【马拉车+哈希】

    四川今天又上热搜了,继南部疫情的未雨绸缪后,龙槽沟是真的倾盆大雨了.我没有兴趣虚伪矫情地对罹难的游人表达同情,因为人与人互不相通徒增谈资:我也没有兴趣居高临下地对擅闯的愚人表达不屑,因为你我皆为乌合之 ...

  2. Word 文字错乱,接收方显示的字体与原版不一直

    原版文档使用字体的不是电脑上自带的常规字体,比如,黑软雅黑.黑体.宋体等字体.当把文档发送给其他人查阅时,字体发生了错乱,也就是字体与原版字体不一致. 需要打开"选项"设置,把非常 ...

  3. Navicat的使用与python中使用MySQL的基本方法

    Navicat的使用与python中使用MySQL的基本方法 Navicat的下载及安装 下载地址 http://www.navicat.com.cn/download/navicat-premium ...

  4. HTML+JS+CSS 实现随机跳转到一个网址

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http ...

  5. Java接口自动化测试框架系列(一)自动化测试框架

    一.什么是自动化测试 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程. 通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例一步步执行测试,得到实际结果与期望结果的比较. 为了节省 ...

  6. Helm安装ingress-nginx-4.1.4

    Application version 1.2.1 Chart version 4.1.4 获取chart包 helm fetch ingress-nginx/ingress-nginx --vers ...

  7. 排序算法整理C++(初赛)

    排序算法整理 常见考点 将一个乱掉的字符串排回有序(以交换为基本操作)的最少操作,就是冒泡排序. 排序算法的稳定性 排序算法的时间复杂度 排序算法的稳定性 稳定性是指排序前两个元素a1 = a2,a1 ...

  8. KingbaseES 全局索引

    概述:在分区表上创建的索引可分为全局索引和本地索引.全局索引包括全局非分区索引(Global Nonpartitioned Indexes)和全局分区索引(Global Partitioned Ind ...

  9. 面试突击82:SpringBoot 中如何操作事务?

    在 Spring Boot 中操作事务有两种方式:编程式事务或声明式事务,接下来我们一起来看二者的具体实现. 1.编程式事务 在 Spring Boot 中实现编程式事务又有两种实现方法: 使用 Tr ...

  10. 洛谷P7112 行列式求值

    行列式求值 这是一个让你掉头发的模板题 行列式的定义 行列式 (\(\texttt{Determinant}\)) 是一个函数定义,取值是一个标量. 对一个 \(n\times n\) 的矩阵 \(A ...