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

news2024/10/6 16:16:03

目录

前言

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

def 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 pygame

def 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.coloradmin.cn/o/887013.html

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

相关文章

Quivr 基于GPT和开源LLMs构建本地知识库 (更新篇)

一、前言 自从大模型被炒的越来越火之后,似乎国内涌现出很多希望基于大模型构建本地知识库的需求,大概在5月底的时候,当时Quivr发布了第一个0.0.1版本,第一个版本仅仅只是使用LangChain技术结合OpenAI的GPT模型实现了一个最基本的…

Mariadb高可用MHA (四十二)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、概述 1.1 概念 1.2 组成 1.3 特点 1.4 工作原理 二、构建MHA 2.1 ssh免密登录 2.2 主从复制 2.3 MHA安装 2.3.1所有节点安装perl环境 2.3..2 node 2.3.…

clickhouse-监控配置

一、概述 监控是运维的一大利器,要想运维好clickhouse,首先就要对其进行监控,clickhouse有几种监控数据的方式,一种是系统本身监控,一种是通过exporter来监控,下面分别描述一下 二、系统自带监控 我下面会对监控做一…

github拉取自己的私有仓库(Token方式、本地秘钥方式)

github拉取自己的私有仓库(Token方式、本地秘钥方式) 问题背景 日常开发和学习过程中,经常碰到需要从GitHub或者其他类似网站,拉取私有仓代码的需求。本文将总结常用的两种方式,Token方式和本地秘钥方式,方便后续查阅和优化。 …

C++ 11 新特性 学习笔记

1、字符串原始字面量 R“()”用于取消转义,可用于路径表示 运行成功 这两个RawValue起到描述作用(可以不写),并不参与输出 注意,这里输出中文乱码 2、nullptr NULL在C中表示0,在非C中表示万能指针 nullpt…

Ordinals 之后,以太坊铭文协议 Ethscriptions 如何再塑 NFT 资产形态

随着加密市场的发展,NFT 赛道逐渐形成了其独有的市场。但在加密熊市的持续影响下,今年 NFT 赛道的发展充满坎坷与挑战。据 NFTGO 数据显示,截至 8 月 7 日,与去年相比,NFT 市值总计约 56.4 亿美元,过去 1 年…

nginx部署时http接口正常,ws接口404

可以这么配置 map $http_upgrade $connection_upgrade {default upgrade; close; }upstream wsbackend{server ip1:port1;server ip2:port2;keepalive 1000; }server {listen 20038;location /{ proxy_http_version 1.1;proxy_pass http://wsbackend;proxy_redirect off;proxy…

人工智能学习框架—飞桨Paddle人工智能

1.人工智能框架 机器学习的三要素:模型、学习策略、优化算法。 当我们用机器学习来解决一些模式识别任务时,一般的流程包含以下几个步骤: 1.1.浅层学习和深度学习 浅层学习(Shallow Learning):不涉及特征学习,其特征…

python编程小游戏简单的,利用python编写小游戏

这篇文章主要介绍了python编程小游戏简单的,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。 虽然大家老调侃程序员没头发,看起来比实际年龄大。但其实咱们却是非常有…

RabbitMq:Topic exchange(主题交换机)的理解和使用

RabbitMq:Topic exchange(主题交换机)的理解和使用 在RabbitMq中,生产者的消息都是通过交换机来接收,然后再从交换机分发到不同的队列中去,在分发的过程中交换机类型会影响分发的逻辑,下面主要讲解一下主题交换机。 ​ 主题交换…

【制作npm包5】npm包制作完整教程,我的第一个npm包

制作npm包目录 本文是系列文章, 作者一个橙子pro,本系列文章大纲如下。转载或者商业修改必须注明文章出处 一、申请npm账号、个人包和组织包区别 二、了解 package.json 相关配置 三、 了解 tsconfig.json 相关配置 四、 api-extractor 学习 五、npm包…

更多openEuler镜像加入AWS Marketplace!

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

Flink之Partitioner(分区规则)

Flink之Partitioner(分区规则) 方法注释global()全部发往1个taskbroadcast()广播(前面的文章讲解过,这里不做阐述)forward()上下游并行度一致时一对一发送,和同一个算子连中算子的OneToOne是一回事shuffle()随机分配(只是随机,同Spark的shuffle不同)rebalance()轮询分配,默认机…

排序算法-冒泡排序(C语言实现)

简介😀 冒泡排序是一种简单但效率较低的排序算法。它重复地扫描待排序元素列表,比较相邻的两个元素,并将顺序错误的元素交换位置,直到整个列表排序完成。 实现🧐 以下内容为本人原创,经过自己整理得出&am…

Python遍历多个子文件夹并基于文件名特征将文件复制到不同的目标文件夹

本文介绍基于Python语言,遍历一个大文件夹中大量的子文件夹,并将每一个子文件夹中大量的文件,按照每一个文件的文件名称的特点与差异,自动创建多个目标文件夹,并将指定文件复制到不同的目标文件夹中的方法。 首先&…

【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署

目录 EFK安装部署 一、环境准备(所有主机) 1、主机初始化配置 2、配置主机名并绑定hosts,不同主机名称不同 3、主机配置初始化 4、部署docker环境 二、部署kubernetes集群 1、组件介绍 2、配置阿里云yum源 3、安装kubelet kubeadm …

《零基础7天入门Arduino物联网-05》电路基础知识下

配套视频课程:《零基础学Arduino物联网,入门到进阶》 配套课件资料获取:微联实验室 配套学习套件购买:淘宝搜索店铺【微联实验室】 电阻、电容、电感和二极管 电阻 电阻用于电路中,其主要功能在于控制电流的流动和阻…

开源低代码平台Openblocks

网友 HankMeng 想看低代码工具,正好手上有一个; 什么是 Openblocks ? Openblocks 是一个开发人员友好的开源低代码平台,可在几分钟内构建内部应用程序。 传统上,构建内部应用程序需要复杂的前端和后端交互,…

元宇宙展厅:打造新型“人货场”发展趋势

在过去几年,元宇宙的话题被多次提起,随着VR技术的不断发展,元宇宙营销逐步出圈,通过沉浸式、互动式的虚拟环境,为消费者打造更加身临其境的体验。 元宇宙展厅构建新型“人货场”关系,将商品搬进元宇宙空间是…

安卓纯代码布局开发游戏二:Android Studio开发环境搭建

1.Android Studio下载: Download Android Studio & App Tools - Android Developers 2.安装 安装过程非常简单,找到下载包,一直点Next即可。 3.下载Android SDK 第一次进入Android Studio默认会先下载Android SDK,笔者下载的Android SDK存…