星际争霸之小霸王之小蜜蜂(一)
目录
前言
一、安装pygame库
1、pygame库简介
2、在windows系统安装pygame库
二 、搭建游戏框架
1、创建游戏窗口
2、改变窗口颜色
总结
前言
大家应该都看过或者都听说过python神书“大蟒蛇”,上面有一个案例是《外星人入侵》,游戏介绍让我想起了上学时候玩过的星际争霸,又让我想起小时候玩的小霸王游戏小蜜蜂,下面我们就按照书籍步骤,看能否实现游戏功能,然后再升级。
一、安装pygame库
1、pygame库简介
Pygame库是一个用于编写2D游戏的Python库。它提供了许多用于处理图像、声音等方面的功能,使得开发者能够快速、轻松地创建自己的游戏。Pygame在跨平台兼容性方面表现良好,可以在多个操作系统下使用。
Pygame的核心是Surface(表面)对象,它代表了一个可绘制的区域。Pygame可以通过在Surface上绘制图形和文本来创建游戏元素。Pygame还提供了事件处理、碰撞检测、时钟控制等常用功能,使得开发者可以轻松地实现游戏逻辑。
除了基本功能之外,Pygame还有大量的扩展模块可供使用,如Pygame.mixer(用于播放音频)、Pygame.font(用于处理字体)等。开发者可以根据自己的需求选择性的引入这些模块。
总之,Pygame为开发者提供了大量的工具和函数库,使得开发游戏变得更加容易和愉快。
2、在windows系统安装pygame库
有过简单基础的小伙伴都知道,安装库是最简单的,只要输入代码就行
pip install pygame
我们在命令行下输入命令,如图
这就开始安装了,出现成功的单词就表示安装成功了
二 、搭建游戏框架
1、创建游戏窗口
我们按照书上步骤,先创建一个空的窗口试试看能否成功
为避免后续调用发生错乱,我们建立的python文件也命名为alien_invasion.py,alien的意思是外星人,invasion的意思是进攻。
先放代码,后续再详解
import sys
import pygamedef run_game():pygame.init()screen = pygame.display.set_mode((800,600))pygame.display.set_caption("Alien Invasion")while True:for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()pygame.display.flip()run_game()
下面我们来一一介绍:
❶sys模块是Python标准库中的一个模块,提供了与Python解释器和运行时环境有关的功能,使用sys库可以获取Python解释器的信息,控制程序的退出、标准输入输出和错误流,以及操作模块搜索路径等。所以这里导入sys模块的目的是控制程序的退出
❷pygame.init()是初始化游戏对象,这个操作是必须的,规定动作一定要做。这个函数将初始化 Pygame 库并为其提供必要的资源和支持。初始化后,才能正常使用 Pygame 库中的功能。
❸display模块是Pygame中用于管理屏幕和窗口的模块。它包含了一些用于初始化pygame显示模块、设置屏幕分辨率、创建游戏窗口、更新窗口内容、处理事件等功能的函数。可以很好理解,pygame.display.set_mode((800,600))是设置窗口大小,pygame.display.set_caption("Alien Invasion")是设置窗口的名称
❹循环语句就是一直监听鼠标和键盘的操作,这个后面有键盘和鼠标输入的时候我们再详细讲。这个代码很好理解,判断如果游戏退出,那么就关闭程序。循环的最后一个语句pygame.display.flip(),我个人理解就是刷新,不断的刷新屏幕,保持动态效果。
我们来运行下看看效果怎么样。
效果非常的棒,和我们想的一样,下一步就是要改变窗口的颜色了。
2、改变窗口颜色
我们知道,很多软件包括Python都是用RGB值来控制颜色,RGB是红、绿、蓝三个颜色分量的缩写,每个分量的值可以在0到255之间取整数值,因此RGB可以表示256256256=16777216种不同的颜色。其中一些常用的颜色和它们所对应的RGB值如下:
- 红色:(255, 0, 0)
- 黄色:(255, 255, 0)
- 绿色:(0, 255, 0)
- 青色:(0, 255, 255)
- 蓝色:(0, 0, 255)
- 紫色:(255, 0, 255)
- 白色:(255, 255, 255)
- 黑色:(0, 0, 0)
我们只需要加一行代码,在每次绘制屏幕之前,也就是我上面说的刷新之前,给窗口定义一个颜色就行,我们来试下青色的背景。
import sys
import pygamedef run_game():pygame.init()screen = pygame.display.set_mode((800,600))pygame.display.set_caption("Alien Invasion")while True:for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()screen.fill((0,255,255))pygame.display.flip()run_game()
加上代码screen.fill((0,255,255))之后,效果立马显现,看图片
总结
万事开头难,今天将游戏的屏幕设置好了,后面我们将各种小虫子添加上去就行。
相关文章:

星际争霸之小霸王之小蜜蜂(一)
目录 前言 一、安装pygame库 1、pygame库简介 2、在windows系统安装pygame库 二 、搭建游戏框架 1、创建游戏窗口 2、改变窗口颜色 总结 前言 大家应该都看过或者都听说过python神书“大蟒蛇”,上面有一个案例是《外星人入侵》,游戏介绍让我想起了上…...

图数据库_Neo4j基于docker服务版安装_Neo4j Desktop桌面版安装---Neo4j图数据库工作笔记0004
然后我们来看看如何用docker来安装Neo4j community server 首先去执行docker pull neo4j:3.5.22-community 去拉取镜像 然后执行命令就可以安装了 可以用docker ps查看一下 看看暴露了哪些端口 然后再看一下访问一下这个时候,要用IP地址了注意 然后再来看一下安装Desktop 去下…...

docker-compose部署可道云
文章目录 一. Mac1.1 下载源码1.2 部署1.2.1 修改密码部署(可忽略)1.2.2 直接部署 1.3 卸载1.4 访问 二. Win2.1 下载源码2.2 部署2.2.1 修改密码部署(可忽略)2.2.2 直接部署 2.3 卸载 一. Mac 1.1 下载源码 mkdir -p /Users/wanfei/docker-compose && cd /Users/wan…...

Windows上使用FFmpeg实现本地视频推送模拟海康协议rtsp视频流
场景 Nginx搭建RTMP服务器FFmpeg实现海康威视摄像头预览: Nginx搭建RTMP服务器FFmpeg实现海康威视摄像头预览_nginx rtmp 海康摄像头_霸道流氓气质的博客-CSDN博客 上面记录的是使用FFmpeg拉取海康协议摄像头的rtsp流并推流到流媒体服务器。 如果在其它业务场景…...

单片机之从C语言基础到专家编程 - 4 C语言基础 - 4.8 运算符
1.算术运算符 运算符名称备注加法运算符双目运算,a b-减法运算符双目运算,a - b*乘法运算符双目运算,a * b/除法运算符双目运算,a / b%求余运算符双目运算, a % b自增运算符单目运算, a–自减运算符单目运算, a– 2.关系运算符…...

轮腿机器人的PID控制
1 PID介绍 PID(Proportional Integral Derivative)控制系统。其实质是根据输入的偏差值,按比例、积分、微分的函数关系进行运算,运算结果用以输出进行控制。它是在长期的工程实践中总结出来的一套控制方法,实际运行经…...

ChatGPT爆火,会给教育带来什么样的影响或者冲击?
近来,人工智能聊天机器人ChatGPT连上热搜,火爆全网。ChatGPT拥有强大的信息整合能力、自然语言处理能力,可谓是“上知天文,下知地理”,而且还能根据要求进行聊天、撰写文章等。 ChatGPT一经推出,便迅速在社…...

Servlet+JDBC实战开发书店项目讲解第三篇:商品查询实现
ServletJDBC实战开发书店项目讲解第三篇:商品查询实现 本篇博客将介绍如何在ServletJDBC实战开发书店项目中实现商品查询功能。我们将从设计数据库表结构和实体类开始,一步一步详细讲解代码实现过程,包括前端页面的设计和后端Servlet代码的编…...

爬虫逆向实战(十七)--某某丁简历登录
一、数据接口分析 主页地址:某某丁简历 1、抓包 通过抓包可以发现数据接口是submit 2、判断是否有加密参数 请求参数是否加密? 通过查看“载荷”模块可以发现有一个enPassword加密参数 请求头是否加密? 通过查看请求头可以发现有一个To…...

《安富莱嵌入式周报》第320期:键盘敲击声解码, 军工级boot设计,开源CNC运动控制器,C语言设计笔记,开源GPS车辆跟踪器,一键生成RTOS任务链表
周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版: https://www.bilibili.com/video/BV1Cr4y1d7Mp/ 《安富莱嵌入式周报》第320期:键盘敲击…...

DRF 缓存
应用环境 django4.2.3 ,python3.10 由于对于服务而言,有些数据查询起来比较费时,所以,对于有些数据,我们需要将其缓存。 最近做了一个服务,用的时 DRF 的架构,刚好涉及缓存,特此记…...

Collada .dae文件格式简明教程【3D】
当你从互联网下载 3D 模型时,可能会在格式列表中看到 .dae 格式。 它是什么? 推荐:用 NSDT编辑器 快速搭建可编程3D场景。 1、Collada DAE概述 COLLADA是COLLAborative Design Activity(中文:协作设计活动)…...

在K8s上处理nginx
基本说明 创建一个名为ssl的TLS类型的Secret对象,用于存储证书和密钥信息。 kubectl create secret tls ssl --certserver.crt --keyserver.key配置Nginx的events块,设置worker连接数为1024。 events {worker_connections 1024; }配置Nginx的http块&a…...

嵌入式:ARM Day4
一、自己编写代码实现三盏灯点亮 源码: .text .global _start _start: 进行一次初始化bl RCC_INITbl LED1_INITbl LED2_INITbl LED3_INITb looploop: 循环开关灯bl LED1_ONbl delay_1sbl LED1_OFFbl delay_1sbl LED2_ONbl delay_1sbl LED2_OFFbl delay_1sbl…...

SpringBoot案例-员工管理-分页条件查询
根据页面原型,明确需求 页面原型 需求 查看接口文档 接口文档的链接如下: 【腾讯文档】SpringBoot案例所需文档 https://docs.qq.com/doc/DUkRiTWVaUmFVck9N 思路分析 分页条件查询就时将条件查询的结果进行分页展示,由于有的条件可能设…...

python控制obs实现无缝切换场景!obs-websocket-py
前言 最近一直在研究孪生数字人wav2lip。目前成果可直接输入高清嘴型,2070显卡1分钟音频2.6分钟输出。在直播逻辑上可以做到1比1.3这样,所以现在开始研究直播。在逻辑上涉及到了无缝切换,看到csdn上有一篇文章还要vip解锁。。。那自己研究吧…...

Vue3实现图片懒加载及自定义懒加载指令
Vue3实现图片懒加载及自定义懒加载指令 前言1.使用vue3-lazyload插件2.自定义v-lazy懒加载指令2.1 使用VueUse2.2 使用IntersectionObserver 前言 图片懒加载是一种常见性能优化的方式,它只去加载可视区域图片,而不是在网页加载完毕后就立即加载所有图片…...

LeetCode150道面试经典题-- 环形链表(简单)
1.题目 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&…...

音视频学习-音视频基础
文章目录 一、 音视频录制原理二、音视频播放原理三、图像基础概念1.像素2.分辨率3.位深4.帧率5.码率6.Stride跨距 四、RGB、YUV1.RGB2.YUV1. 4:4:4格式2. 4:2:2格式3. 4:2:0格式4. 4:2:0数据格式对比 3.RGB和YUV的转换4.YUV Stride对齐问题 五、视频的主要概念1.基本概念2.I P…...

asp.net core webapi如何执行周期性任务
使用Api执行周期性任务 第一种,无图形化界面1.新建类,继承IJob,在实现的方法种书写需要周期性执行的事件。2.编写方法类,定义事件执行方式3.在启动方法中,进行设置,.net 6中在program.cs的Main方法中&#…...

快速搭建图书商城小程序的简易流程与优势
很多人喜欢阅读电子书,又有很多人依旧喜欢实体书,而实体书店拥有一个图书商城小程序便成为了满足用户需求的理想选择。如果您也想进入这一充满潜力的领域,但担心开发难度和复杂流程,别担心!您能做到快速搭建一个专业、…...

C++ template 循环
在元编程循环中,我们不需要用while,for来循环,一般情况下都要用递归,例如: #include <iostream> using namespace std; template <int Head, int...Data> constexpr static int num Head num<Data..…...

时序预测 | MATLAB实现基于CNN-BiGRU卷积双向门控循环单元的时间序列预测-递归预测未来(多指标评价)
时序预测 | MATLAB实现基于CNN-BiGRU卷积双向门控循环单元的时间序列预测-递归预测未来(多指标评价) 目录 时序预测 | MATLAB实现基于CNN-BiGRU卷积双向门控循环单元的时间序列预测-递归预测未来(多指标评价)预测结果基本介绍程序设计参考资料 预测结果 基本介绍 MATLAB实现基于…...

mysql 数据备份和恢复
操作系统:22.04.1-Ubuntu mysql 版本:8.033 binlog 介绍 binlog 是mysql 二进制日志 binary log的简称,可以简单理解为数据的修改记录。 需要开启binlog,才会产生文件,mysql 8.0 默认开启,开启后可以在 /var/lib/mysql ÿ…...

Lucene教程_编程入门自学教程_菜鸟教程-免费教程分享
教程简介 Lucene是apache软件基金会 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引…...

物联网工程应用实训室建设方案
一、物联网工程应用系统概述 1.1物联网工程定义 物联网工程(Internet of Things Engineering)是一种以信息技术(IT)来改善实体世界中人们生活方式的新兴学科,它利用互联网技术为我们的日常生活活动提供服务和增益&am…...

【AI绘画】3分钟学会ikun幻术图
目录 前言一、效果展示二、准备工作三、操作步骤3.1平台创建实例3.2 启动SD 四、安装QR Code Monster 模型五、成图 前言 大家热爱的ikun幻术在今天的分享中将呈现。在本文中,我们将揭示一个备受欢迎的图像幻术技术,让您感受到令人惊叹的视觉创造力。 …...

Spring 框架入门介绍及IoC的三种注入方式
目录 一、Spring 简介 1. 简介 2. spring 的核心模块 ⭐ 二、IoC 的概念 2.1 IoC 详解 2.2 IoC的好处 2.3 谈谈你对IoC的理解 三、IoC的三种注入方式 3.1 构造方法注入 3.2 setter方法注入 3.3 接口注入(自动分配) 3.4 spring上下文与tomcat整…...

Centos升级openssl
依赖包 安装编译 OpenSSL 所需的包,包括 gcc、make、perl 和 zlib-devel。可以通过运行以下命令完成: yum install -y gcc make perl zlib-devel安装包下载 下载 OpenSSL 1.1.1 的源码包,可以从 OpenSSL 官网下载(https://www.op…...

第4章:决策树
停止 当前分支样本均为同一类时,变成该类的叶子节点。当前分支类型不同,但是已经没有可以用来分裂的属性时,变成类别样本更多的那个类别的叶子节点。当前分支为空时,变成父节点类别最多的类的叶子节点。 ID3 C4.5 Cart 过拟合 缺…...