Pygame实现射击鸭子游戏3-2

2 鸭子类Target的创建

2.1  __init__()函数

Target类的__init__()函数代码如图5所示。

图5 __init__()函数代码

其中,第18行将Target类声明为pygame.sprite.Sprite类的子类;第19行代码中,__init__()函数的img_path参数表示鸭子图片的文件名,x和y表示鸭子起始位置的横纵坐标;第20行代码调用pygame.sprite.Sprite类的__init__()进行初始化操作;第21行代码导入鸭子图片;第22行代码获取鸭子图片的位置和大小;第23行代码根据指定的位置设置鸭子的起始位置。

2.2 update()函数

Target类的update()函数代码如图6所示。

图6 update()函数代码

Target类的update()函数的作用是让鸭子游动起来。鸭子是从屏幕左边向右边水平移动的,所以只需要改变其横坐标即可,纵坐标可以不变。第25行代码通过rect.move_ip()方法改变鸭子的横坐标,random.randint(0,10)表示鸭子的速度是一个0-10之间的随机数;第26-27行代码判断鸭子是否已经游到屏幕的右侧边缘,如果已经游到边缘,则将其左上角的横坐标rect.left设置为0,表示将其位置恢复到屏幕左侧边缘。

3 实例化瞄准镜类及创建相应的精灵组

实例化瞄准镜类及创建相应的精灵组的代码如图7所示。

图7 实例化瞄准镜类及创建相应的精灵组的代码

其中,第42行代码实例化了瞄准镜类Crosshair,其实例名为crosshair,“crosshair_blue_small.png”是瞄准镜的文件名;第43行代码通过pygame.sprite.Group()创建了精灵组crosshair_group;第44行代码将实例crosshair加入到精灵组crosshair_group中。

4 实例化鸭子类及创建相应的精灵组

实例化鸭子类及创建相应的精灵组的代码如图8所示。

图8 实例化鸭子类及创建相应的精灵组的代码

其中,第46行代码创建用于保存鸭子精灵的精灵组target_group;第47行使用for循环创建TARGET_NUM个鸭子;第48-49行代码随机设置鸭子的横纵坐标;第50行代码实例化鸭子类,“duck_yellow.png”是鸭子图片的文件名;第51行代码将创建的鸭子实例精灵加入到精灵组中。

5 导入背景

导入背景的代码如图9所示。

图9 导入背景的代码

其中,第39行代码通过pygame.image.load()导入背景图片;第40行代码将背景图片设置为屏幕大小,pygame.transform.scale()函数的作用是设置图片大小,bg_img表示要设置的图片,(SCREEN_WIDTH, SCREEN_HEIGHT)表示要设置的大小,即为屏幕的宽度和高度。

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

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

相关文章

利用Java爬虫获取衣联网商品详情:实战指南

在电商领域,获取商品详情是数据分析和市场研究的重要环节。衣联网作为知名的电商平台,提供了丰富的服装商品资源。本文将详细介绍如何利用Java编写爬虫程序,通过商品ID获取衣联网商品详情。 一、准备工作 (一)环境搭…

五、OpenGL中Shader与C++数据传输

文章目录 一、概述二、Shader 代码文件的基本格式三、Shader的向量语法介绍四、Shader之间的数据传输五、Shader与C的数据传输uniform六、完整示例 一、概述 在 OpenGL 中,Shader(着色器)使用 GLSL(OpenGL Shading Language&…

【3DMAX插件】3DMAX建筑大师插件MasterBuilder使用方法

3DMAX建筑大师插件是一款专为3DMAX设计的程序化(参数化)建筑建模工具,其最大特点是能够一键生成建筑模型,极大地提升了工作效率。该插件配备了多种结构控制选项,涵盖阳台、门窗、栏杆、楼顶水塔等附属建筑元素&#xf…

隐私保护在 Facebook 用户身份验证中的应用

在这个数字化的时代,个人隐私保护成为了公众关注的焦点。社交媒体巨头 Facebook 作为全球最大的社交平台之一,拥有数十亿用户,其在用户身份验证过程中对隐私保护的重视程度直接影响着用户的安全感和信任度。本文将探讨 Facebook 在用户身份验…

Swift Package Manager (SPM) 创建并集成本地库

在macOS 项目中,使用 Swift Package Manager (SPM) 创建并集成本地库的完整步骤。 创建一个macos应用程序,选择 swift、oc、swiftui都可以。 创建好应用之后,开始创建SPM本地库。 打开终端app,进入项目根目录,逐次输…

渗透测试之利用sql拿shell(附完整流程+防御方案)【下】

导读: 时刻保持谦逊,始终保持学习,探寻事物的本质,不要把事情复杂化 话不多说,书接上回 三、利用日志getshell 利用条件: 拥有网站的写入权限知道网站的绝对路径数据库日志开启 实际操作: (1)查看数据库日志是否开启以及路径 show variables like %general%; (2…

LeetCode 热题 100_每日温度(72_739_中等_C++)(栈)(暴力破解;栈(从左到右);栈(从右到左))

LeetCode 热题 100_每日温度(72_739) 题目描述:输入输出样例:题解:解题思路:思路一(暴力破解法(双重循环)):思路二(栈:从左到右)&…

【HarmonyOS Next之旅】DevEco Studio使用指南(二)

目录 1 -> 工程模板介绍 2 -> 创建一个新的工程 2.1 -> 创建和配置新工程 2.1.1 -> 创建HarmonyOS工程 2.2.2 -> 创建OpenHarmony工程 1 -> 工程模板介绍 DevEco Studio支持多种品类的应用/元服务开发,预置丰富的工程模板,可以根…

unity3d 背景是桌面3d数字人,前面是web的表单

是可以实现的,但涉及多个技术栈的结合,包括 Unity3D、Web 技术(HTML、JavaScript)、以及可能的 WebGL 或 WebRTC 技术。大致有以下几种实现方案: 方案 1:Unity 作为独立应用(桌面端&#xff0…

猫耳大型活动提效——组件低代码化

1. 引言 猫耳前端在开发活动的过程中,经历过传统的 pro code 阶段,即活动页面完全由前端开发编码实现,直到 2020 年接入公司内部的低代码活动平台,满足了大部分日常活动的需求,运营可自主配置活动并上线,释…

深度学习系列79:Text2sql调研

参考 https://github.com/topics/text-to-sql 这里是一些资源:https://github.com/eosphoros-ai/Awesome-Text2SQL/blob/main/README.zh.md 这里是综述文章:https://zhuanlan.zhihu.com/p/647249972 1. 数据集 Spider: 一个跨域的复杂text2sql数据集&a…

Linux 系统负载过高的排查思路

技术探讨:Linux系统负载过高的排查思路 在Linux服务器运行过程中,如果系统负载过高,可能会导致性能下降和服务不稳定。以下是针对Linux系统负载过高问题的排查思路和解决方法: 1. 查看系统负载: 使用uptime或top命令查…

【互联网性能指标】QPS/TPS/PV/UV/IP/GMV/DAU/MAU/RPS

📕我是廖志伟,一名Java开发工程师、《Java项目实战——深入理解大型互联网企业通用技术》(基础篇)、(进阶篇)、(架构篇)清华大学出版社签约作家、Java领域优质创作者、CSDN博客专家、…

linux---天气爬虫

代码概述 这段代码实现了一个天气查询系统,支持实时天气、未来天气和历史天气查询。用户可以通过终端菜单选择查询类型,并输入城市名称来获取相应的天气信息。程序通过 TCP 连接发送 HTTP 请求,并解析返回的 JSON 数据来展示天气信息。 #in…

Java高频面试之集合-08

hello啊,各位观众姥爷们!!!本baby今天来报道了!哈哈哈哈哈嗝🐶 面试官:详细说说CopyOnWriteArrayList CopyOnWriteArrayList 详解 CopyOnWriteArrayList 是 Java 并发包(java.util…

【微信小程序 onTabItemTap:精准监听 TabBar 点击事件】

onTabItemTap 是微信小程序中的一个页面生命周期函数,用于监听用户点击 TabBar 上的某个项时的事件。以下是如何运用 onTabItemTap 的详细说明: 使用场景 onTabItemTap 适用于需要在用户点击 TabBar 切换页面时执行特定逻辑的场景。例如,你…

痉挛性斜颈需要做手术吗?

痉挛性斜颈的治疗是一个涉及多种医学知识的话题,让我们从多方面分析这个问题,来谈谈是否需要进行手术。 首先,我们要明确痉挛性斜颈是一种什么疾病。痉挛性斜颈是一种颈部肌肉异常收缩的疾病,可能导致头部持续或间歇性地向一侧旋…

AOT是什么?

https://www.bilibili.com/video/BV1Es4y1q7Bf?spm_id_from333.788.player.switch&vd_source12d5954938d20d50645e227a6a728c76&p87常规的java代码是即时解释执行的,只有热点代码才会提前编译成二进制,并且将java代码放到别的电脑执行时得安装j…

【JavaWeb学习Day23】

Maven高级 分模块设计与开发 分模块设计:将一个大项目分成若干个子模块,方便项目的维护、扩展,也方便模块间的相互引用,资源共享。 策略: 1.策略一:按照功能模块拆分,比如:公共组…

图像的特征

图像的特征主要包括以下几类: 1. 颜色特征: 直方图:描述图像中颜色的分布。 颜色矩:通过颜色的均值、方差等统计量表示颜色分布。 主色调:图像中占主导地位的颜色。 2. 纹理特征: 灰度共生矩阵&#xff0…