星际争霸之小霸王之小蜜蜂(一)--窗口界面设计

目录

 

前言

一、安装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

 我们在命令行下输入命令,如图

96a4b19b0c2440f5818ef6c27f070929.jpeg

 这就开始安装了,出现成功的单词就表示安装成功了

d233f05677014711a7a710915995d6c9.jpeg

二 、搭建游戏框架

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(),我个人理解就是刷新,不断的刷新屏幕,保持动态效果。

 我们来运行下看看效果怎么样。

 0d4cc0ef301c4bad9222ac562e6a45a4.jpeg

 效果非常的棒,和我们想的一样,下一步就是要改变窗口的颜色了。

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

 4ef78c5c34804f00b70e33e979a5402e.jpeg

 总结

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

 

 

 

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

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

相关文章

yolov8-seg dnn调用

接上篇一直更换torch、opencv版本都无法解决这个问题(seg调用dnn报错)。那问题会不会出在yolov8源码本身呢。yolov8的讨论区基本都看过了,我决定尝试在其前身yolov5的讨论区上找找我不信没人遇到这个问题。很快找到下面的讨论第一个帖子&…

智慧应急:构建全方位、立体化的安全保障网络

一、引言 在信息化、智能化快速发展的今天,传统的应急管理模式已难以满足现代社会对安全保障的需求。智慧应急作为一种全新的安全管理模式,旨在通过集成物联网、大数据、云计算、人工智能等先进技术,实现对应急事件的快速响应、精准决策和高…

2018-02-14 新闻内容爬虫【上学时做论文自己爬新闻数据,原谅我自己懒发的图片】

2018-02-14新闻内容爬虫【上学时做论文自己爬新闻数据,原谅我自己懒发的图片】资源-CSDN文库https://download.csdn.net/download/liuzhuchen/88878591爬虫过的站点: 1QQ新闻 1,准备爬取滚动新闻页面 2 通过F12 开发工具查找发现&#xff…

51单片机晶振频率与定时中断产生pwn占空比

单片机中晶振频率为12MHZ的机器周期怎么算? 1、系统晶振频率是12M,则机器周期=12/12=1us; 2、定时1ms=1*1000=1000us; 3、工作在方式0下:最大计数值是2&a…

element el-table表格内容宽度自适应,不换行,不隐藏

2024.2.27今天我学习了如何用el-table实现表格宽度的自适应,当我们动态渲染表格数据的时候,有时候因为内容太多会出现挤压换行的效果: 我们需要根据内容的最大长度设置动态的宽度,这边我在utils里面封装了一个js: //…

【Android移动开发】Windows10平台安装Android Studio与人工智能算法模型部署案例

目录 一、Android Studio下载地址二、开发环境JDK三、开始安装Android Studio四、案例展示与搭建五、旧版Android Studio 3.2 最终配置参数设置六、人工智能算法模型移动端部署案例参考 一、Android Studio下载地址 https://developer.android.google.cn/studio/install.html …

ETH网络中的账户

ETH网络中的账户 Externally owned accounts (EOA) - 外部账户 由用户控制,我们导入助记词创建的账户就属于此类账户。 Contract accounts (smart contracts) - 合约账户 合约账户由以太坊虚拟机执行的代码控制。它也被称为智能合约。合约帐户有相关的代码和数据存…

Keil新版本安装编译器ARMCompiler 5.06

0x00 缘起 我手头的项目在使用最新版本的编译器后,烧录后无法正常运行,故安装5.06,测试后发现程序运行正常,以下为编译器的安装步骤。 0x01 解决方法 1. 下载编译器安装文件,可以去ARM官网下载,也可以使用我…

架构设计:生产消费模型

1. 引言 在现代软件系统中,处理大量数据和消息是一项重要的任务。生产消费模型作为一种经典的并发模式,在解决数据生产和消费之间的关系上发挥着关键作用。该模型通过有效地管理生产者和消费者之间的通信和数据流动,实现了系统组件之间的解耦…

H5 个人引导页个人介绍四选项型源码

H5 个人引导页个人介绍四选项型源码 源码介绍:源码无后台、无数据库,H5自适应、无加密,直接修改可用。 源码含有点击特效、内含4个区块 下载地址: https://www.changyouzuhao.cn/1409.html

istio学习记录——VirtualService详解

上一篇使用VirtualService进行了简单的流量控制,并通过Gateway将流量导入到了集群内。这一篇将更加深入的介绍 VirtualService。 k8s中有service,service能够对流量进行负载均衡,那为什么istio又引入了VirtualService呢,因为serv…

腾讯云服务器4核8G性能,和阿里云比怎么样?

腾讯云4核8G服务器支持多少人在线访问?支持25人同时访问。实际上程序效率不同支持人数在线人数不同,公网带宽也是影响4核8G服务器并发数的一大因素,假设公网带宽太小,流量直接卡在入口,4核8G配置的CPU内存也会造成计算…