星际争霸之小霸王之小蜜蜂(一)

目录

前言

一、安装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))之后,效果立马显现,看图片

 

 总结

 万事开头难,今天将游戏的屏幕设置好了,后面我们将各种小虫子添加上去就行。

 

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

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

相关文章

炫酷UI前端效果的CSS生成工具

提升设计人员和前端开发人员的工作 推荐炫酷UI前端效果的CSS生成工具1.Neumorphism2.带有渐变的图标3.Interactions4.大型数据库5.动画6.Mask7.动画按钮8. 自定义形状分隔线9.背景图案10. SVG波浪推荐炫酷UI前端效果的CSS生成工具 1.Neumorphism 地址:https://neumorphism.i…

【Nginx17】Nginx学习:目录索引、字符集与浏览器判断模块

Nginx学习:目录索引、字符集与浏览器判断模块 今天要学习的内容有几个还是大家比较常见的,所以学习起来也不会特别费劲。对于目录的默认页设置大家都不会陌生,字符集的设置也比较常见,而浏览器的判断这一块,可能有同学…

深入源码分析kubernetes informer机制(二)Reflector

[阅读指南] 这是该系列第二篇 基于kubernetes 1.27 stage版本 为了方便阅读,后续所有代码均省略了错误处理及与关注逻辑无关的部分。 文章目录 Reflector是什么整体结构工作流程list拉取数据缓存resync操作watch监听操作 总结 Reflector是什么 reflector在informer…

RocketMQ双主双从同步集群部署

🎈 作者:互联网-小啊宇 🎈 简介: CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作,擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护…

学习笔记十九:Pod常见的状态和重启策略

Pod常见的状态和重启策略 常见的pod状态第一阶段:第二阶段:扩展: pod重启策略测试Always重启策略正常停止容器内的tomcat服务非正常停止容器里的tomcat服务 测试never重启策略正常停止容器里的tomcat服务非正常停止容器里的tomcat服务 测试On…

Mac安装opencv后无法导入cv2的解决方法

前提条件:以下两个插件安装成功 pip install opencv-python pip install --user opencv-contrib-python 注:直接用pip install opencv-contrib-python如果报错,就加上“–user" 第一步: 设置–添加python解释器 第二步&am…

go语言恶意代码检测系统--对接前端可视化与算法检测部分

Malware Detect System 1 产品介绍 恶意代码检测系统。 2 产品描述 2.1 产品功能 功能点详细描述注册账号未注册用户注册成为产品用户,从而具备享有产品各项服务的资格登录账号用户登录产品,获得产品提供的各项服务上传恶意样本用户可以将上传自己的…

uniapp微信小程序消息订阅快速上手

一、微信公众平台小程序开通消息订阅并设置模板 这边的模板id和详细内容后续前后端需要使用 二、uniapp前端 需要是一个button触发 js: wx.getSetting({success(res){console.log(res)if(res.authSetting[scope.subscribeMessage]){// 业务逻辑}else{uni.request…

智安网络|深入比较:Sass系统与源码系统的差异及选择指南

随着前端开发的快速发展,开发人员需要使用更高效和灵活的工具来处理样式表。在这个领域,Sass系统和源码系统是两个备受关注的选项。 Sass系统 Sass(Syntactically Awesome Style Sheets)是一种CSS预处理器,它扩展了CS…

@Param详解

文章目录 背景什么是ParamParam的使用方法使用方法:遇到的问题及因Param解决了什么问题使用与不使用对比 Param是如何进行映射的总结 背景 最近在开发过程中,在写mapper接口是在参数前加了Param注解,但是在运行的时候就会报错,说…

更多openEuler镜像加入AWS Marketplace!

自2023年7月openEuler 22.03 LTS SP1正式登陆AWS Marketplace后,openEuler社区一直持续于在AWS上提供更多版本。 目前,openEuler22.03 LTS SP1 ,SP2两个版本及 x86 arm64两种架构的四个镜像均可通过AWS对外提供,且在亚太及欧洲15个Region开放…

wkhtmltopdf 与 .Net Core

wkhtmltopdf 是使用webkit引擎转化为pdf的开源小插件. 其有.NET CORE版本的组件,DinkToPdf,但该控件对跨平台支持有限。 故打算在Linux上安装相关插件直接调用. 准备工作 虚拟机:Linux version 3.10.0-1160.el7.x86_64 wkhtmltox开发包:wkhtmltox_0.12…

大数据Flink(六十):Flink 数据流和分层 API介绍

文章目录 Flink 数据流和分层 API介绍 一、​​​​​​​​​​​​​​Flink 数据流

ZooKeeper的应用场景(命名服务、分布式协调通知)

3 命名服务 命名服务(NameService)也是分布式系统中比较常见的一类场景,在《Java网络高级编程》一书中提到,命名服务是分布式系统最基本的公共服务之一。在分布式系统中,被命名的实体通常可以是集群中的机器、提供的服务地址或远程对象等一这…

iOS申请证书(.p12)和描述文件(.mobileprovision)

打包app时,经常会用到ios证书,但很多人都苦于没有苹果电脑,即使有苹果电脑的,也会觉得苹果电脑操作也很麻烦,这里记录一下,用香蕉云编,申请证书及描述文件的过程。 香蕉云编的地址:…

【C语言】每日一题(多数元素)

多数元素,链接奉上 方法 1.摩尔投票2.合理但错误的方法2.1暴力循环2.2排序求出中间元素中间元素 1.摩尔投票 先来简单的介绍摩尔投票: 摩尔投票是一种用来解决绝对众数问题的算法。 什么是绝对众数呢? 在一个集合中,如果一个元素…

每天一练:SpringBoot连接mq

目录 每天一练:Springboot连接rabbitmq 每天一练:Springboot连接rabbitmq 目录一、部署Rabbitmq?二、增加maven依赖三、连接RabbitMq四、发布和订阅消息总结 一、部署Rabbitmq? 这里rabbitmq采用docker安装部署。 拉取docker镜像 [root192 ~]# docker…

【ChatGLM】ChatGLM-6B模型Win+4GB显卡本地部署笔记

ChatGLM-6B是清华大学知识工程和数据挖掘小组发布的一个类似ChatGPT的开源对话机器人,由于该模型是经过约1T标识符的中英文训练,且大部分都是中文,因此十分适合国内使用。 预期环境 本机电脑备注: Win10专业版 32G内存256固态系统…

SAP动态安全库存简介

动态安全库存:跑需求计划时,ERP系统按设置的库存方式自动计算出满足一定时间内可保障生产的库存数量 SAP动态安全库存的计算公式:动态安全库存=平均日需求*覆盖范围。 平均日需求=特定时期内的总需求/特定时期内的工作天数 覆盖范围指在没又货物供应的情况下,库存可以维…

稀疏感知图像和体数据恢复的系统对象研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…