pygame开发课程系列(2): Pygame 基础

第二章 Pygame 基础

本章将深入 Pygame 的基本功能,包括如何初始化 Pygame、创建窗口、设置颜色、绘制基本图形和更新屏幕。这些基础操作是开发 Pygame 游戏的起点,掌握它们是实现更复杂功能的前提。

2.1 初始化 Pygame

在开始使用 Pygame 之前,你需要初始化 Pygame 的所有模块。这是确保你可以使用 Pygame 提供的各种功能的必要步骤。

import pygame# 初始化 Pygame
pygame.init()

pygame.init() 函数会初始化所有需要的 Pygame 模块。如果初始化成功,Pygame 将准备好处理图形、声音等任务。

此时,代码如果运行成功,你将在代码窗口看到,此时并没有创建游戏窗口:

2.2 创建窗口

创建一个窗口是启动 Pygame 游戏的第一步。窗口是显示图形和游戏内容的区域。如果运行成功,你可以看到一个黑色的游戏界面:

# 设置窗口尺寸
screen = pygame.display.set_mode((800, 600))# 设置窗口标题
pygame.display.set_caption("科技百宝箱的游戏 v1.0")#保持游戏窗口不退出
while True:for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()quit()

2.3 设置颜色

Pygame 使用 RGB 颜色模式来定义颜色。每种颜色由红色、绿色和蓝色三种颜色的强度值组成,每个值在 0 到 255 之间。

# 定义颜色
白色 = (255, 255, 255)
黑色 = (0, 0, 0)
红色 = (255, 0, 0)

使用这些颜色值可以在绘制图形时进行颜色设置。

2.4 绘制基本图形

Pygame 提供了多种绘图函数来绘制基本图形,比如矩形、圆形和线条。

# 填充背景颜色
screen.fill("white")# 绘制矩形pygame.draw.rect(screen, "blue", (50, 200, 200, 100))# 绘制圆
pygame.draw.circle(screen, "red", (300, 200), 50, 0)# 绘制多边形
pygame.draw.polygon(screen, "green", ((100, 100), (200, 100), (200, 200), (100, 200)))# 绘制线条
pygame.draw.line(screen, "black", (0, 0), (100, 100), 5)# 更新屏幕
pygame.display.flip()

pygame.draw.rect(), pygame.draw.circle(), 和 pygame.draw.line() 函数分别用于绘制矩形、圆形和线条。如果代码运行成功,你将看到如下界面:

2.5 更新屏幕

在绘制图形之后,你需要更新屏幕以显示所有的更改。使用 pygame.display.flip() 函数可以实现这一点。

# 刷新屏幕以显示绘制的内容
pygame.display.flip()

pygame.display.flip() 函数会将所有的绘图操作应用到屏幕上,使得用户可以看到最新的图形状态。

最后本章全部代码如下:

import pygamepygame.init()screen = pygame.display.set_mode((640, 480))pygame.display.set_caption("科技百宝箱的游戏 v1.0")# 填充背景颜色
screen.fill("white")# 绘制矩形pygame.draw.rect(screen, "blue", (50, 200, 200, 100))# 绘制圆
pygame.draw.circle(screen, "red", (300, 200), 50, 0)# 绘制多边形
pygame.draw.polygon(screen, "green", ((100, 100), (200, 100), (200, 200), (100, 200)))# 绘制线条
pygame.draw.line(screen, "black", (0, 0), (100, 100), 5)# 更新屏幕
pygame.display.flip()while True:for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()quit()

小结

本章介绍了 Pygame 的基础知识,包括初始化 Pygame、创建窗口、设置颜色、绘制基本图形和更新屏幕。掌握这些基础操作将帮助你建立 Pygame 项目的基础结构,并为更复杂的功能打下坚实的基础。接下来,你将学习如何处理游戏中的事件和用户输入,这将使你能够开发出交互性更强的游戏。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/401838.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python完整爬取工商数据代码实例+数据展示

在数据爬虫这个领域,我早已不再是新手,而是一位经验丰富的老手。长期以来,我通过不断实践和探索,掌握了一系列高效的爬虫技术,特别是在应对复杂网页和动态数据时,更是积累了独特的经验。 初识爬虫&#xf…

迈出Python自动化测试的第一步

一、思考❓❔ 1.什么是性能自动化测试? 性能 系统负载能力超负荷运行下的稳定性系统瓶颈 自动化测试 使用程序代替手工提升测试效率 性能自动化 使用代码模拟大批量用户让用户并发请求多页面多用户并发请求采集参数,统计系统负载能力生成报告 2.Python中的性能自…

react-antive 項目報錯 [CXX1429] error when building with cmake using

react-antive 項目報錯 [CXX1429] error when building with cmake using修复 错误现场分析原因解决方案举一反三技巧引用参考(感谢作者提供思路) 错误现场 [CXX1429] error when building with cmake using /Users/sebastiangarcia/Desktop/work/flm/…

2#负三电梯西侧风机房5个模块故障

上三个线模块 下三个是总线模块,之前的4142 用5141顶了 4142带24v输入和输出 5141 不带只有短接功能, 风机控制柜里面进水了,继电器全部锈死了, 所以没有接24v和反馈线

人工智能-自然语言处理(NLP)

人工智能-自然语言处理(NLP) 1. NLP的基础理论1.1 语言模型(Language Models)1.1.1 N-gram模型1.1.2 词嵌入(Word Embeddings)1.1.2.1 词袋模型(Bag of Words, BoW)1.1.2.2 TF-IDF&a…

8-4 循环神经网络

对于 (8.4.2)中的函数 f f f,隐变量模型不是近似值。 毕竟 h t h_{t} ht​是可以仅仅存储到目前为止观察到的所有数据, 然而这样的操作可能会使计算和存储的代价都变得昂贵。 回想一下,我们在前面讨论过的具有隐藏单元的隐藏层。 值得注意的…

Ubuntu24.04搭建maxkb开发环境

接上文:windows10搭建maxkb开发环境(劝退指南) 上文在windows10环境搭建maxkb开发环境遇到各种坑,后面就转战ubuntu平台,果然比较顺利的完成开发环境搭建。当然遇到相关的问题还是可以参考上文《windows10搭建maxkb开发…

Docker应用部署

部署MySQL 1)拉取镜像并运行MySQL容器 # 拉取镜像到本地docker pull dockerhub.icu/library/mysql:5.6# 查看镜像docker images# 本地创建MySQL目录并进入,用于挂载mkdir -p /docker/mysqlcd /docker/mysql/# 运行MySQL容器 docker run -id \ -p 3307:3…

具有 SAM2 分段的 NDVI 无人机

在我们之前的博客文章《OAK相机扩展NDVI功能检测植物健康情况》中,我们探讨了 NDVI 方法以及如何使用多光谱相机计算它。 今天,我们通过使用带有多光谱相机的无人机并使用 SAM2 模型进行场分割和健康比较,将 NDVI 感知提升到一个新的水平。 …

Denser Retriever: RAG中更强大的AI检索器,让您10 分钟内构建聊天机器人应用

一、Denser Retriever 介绍 Denser Retriever 是一个企业级的RAG检索器,将多种搜索技术整合到一个平台中。在MTEB数据集上的实验表明,Denser Retriever可以显著提升向量搜索(VS)的基线(snowflake-arctic-embed-m模型,…

C++笔记-sstream的使用(字符串转其他类型,读取文件时用得多)

在 C 中&#xff0c;std::stringstream 类可以用来进行字符串流的输入输出&#xff0c;将字符串和其他类型的数据进行转换。 #include <iostream> #include <sstream>int main() {// 将整数转换为字符串int num 123;std::stringstream ss;ss << num;std::s…

谁偷偷看了你的网站?这两款统计工具告诉你!小白易上手~

前两天&#xff0c;上线了一个知识库网站&#xff1a;花了一天时间&#xff0c;搭了个专属知识库&#xff0c;终于上线了&#xff0c;手把手教&#xff0c;不信你学不会。 想知道这个网站的流量如何&#xff0c;怎么搞&#xff1f; 网站流量统计分析工具&#xff0c;了解下&a…

【电子科技大学主办丨IEEE 出版】第三届电子信息技术国际学术会议(EIT 2024,9月20-22)

第三届电子信息技术国际学术会议&#xff08;EIT 2024&#xff09;将于2024年9月20-22日在中国成都召开。 电子信息工程在我国信息化产业的发展过程中举足轻重&#xff0c;且随着移动通信与网络技术的发展&#xff0c;电讯网络、工业智能制造等领域与电子信息工程技术密切相关。…

No fallbackFactory instance of type xxxx found for feign client xx

文章目录 前言问题描述解决方式1、定位问题2、feign接口放置其他模块 前言 最近在openfeign中碰见一个头疼的问题&#xff0c;已经解决&#xff0c;做一次问题记录。 问题描述 报错信息nested exception is java.lang.IllegalStateException: No fallbackFactory instance of…

vue+ckEditor5 复制粘贴wold文字+图片并保存格式

第一步在vue2项目下安装 npm install --save ckeditor/ckeditor5-build-decoupled-document 第二 项目下新建一个plugins的文件夹将这个包ckeditor5-build-classic放入 &#xff08;包在页面最上方 有个下载按钮 可以下载&#xff09; 刚开始时 ckeditor5-build-classic文件…

【GLM-4微调实战】GLM-4-9B-Chat模型之Lora微调实战

系列篇章&#x1f4a5; No.文章1【GLM-4部署实战】GLM-4-9B-Chat模型本地部署实践指南2【GLM-4部署实战】GLM-4-9B-Chat模型之对话机器人部署测试3【GLM-4部署实战】GLM-4-9B-Chat模型之vLLM部署推理实践4【GLM-4微调实战】GLM-4-9B-Chat模型之Lora微调实战 目录 系列篇章&…

国产光电耦合器:2024年的发展现状与未来前景

随着全球电子技术的快速发展&#xff0c;光电耦合器&#xff08;光耦&#xff09;在各种应用场景中发挥着越来越重要的作用。近年来&#xff0c;国产光电耦合器凭借其技术进步和性价比优势&#xff0c;在国内外市场上取得了显著的成就。本文将深入探讨2024年国产光电耦合器的发…

Spring中使用JdbcTemplate访问数据库

首先在原来的基础上添加jar包&#xff0c;建一个测试数据库pring5&#xff0c;里边新建两个表users&#xff0c;authorities&#xff0c;user_authority&#xff1a; <dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc<…

听专家的,不如听国家的,网络安全究竟值不值得报?

考学选专业&#xff0c;或者跳槽选行业的&#xff0c;看这篇&#xff01; 如果你什么都不懂&#xff0c;家里也没有矿&#xff0c;那就紧跟国家大事和地方政策。 关于网络安全专业究竟是否值得报考? 要知道“二十大”、“十四五”等大会一直在提一个词叫做“数字中国建设”…

66_1JSON【浏览器中处理JSON、Java中处理JSON(FastJSON、Jackson)】、Java中的bean

JSON 概念 JSON&#xff1a;JavaScript Object Notation是一种表示对象的方式 基于JavaScript语言的轻量级的数据交换格式;&#xff08;即:用来传输数据的一种格式&#xff09; 现在传输数据的方式更多是采用json的格式&#xff0c;渐渐代替了XML JSON的数据表示 JSON采用名值…