Godot《躲避小兵》实战之为游戏添加音效

现在,我们已经完成了游戏的所有功能。以下是一些剩余的步骤,为游戏加点“料”,改善游戏体验。

随意用你自己的想法扩展游戏玩法。

背景

默认的灰色背景不是很吸引人,那么我们就来改一下颜色。一种方法是使用 ColorRect节点。将其设为 Main 下的第一个节点,这样这个节点就会绘制在其他节点之后。

在这里插入图片描述

ColorRect 只有一个属性:Color(颜色)。选择一个你喜欢的颜色,然后在视口顶部的工具栏或者检查器中选择“布局”->“锚点预设”->“整个矩形”(Layout -> Anchors Preset -> Full Rect),使其覆盖屏幕。

在这里插入图片描述

如果你有背景图片, 你也可以通过使用 TextureRect 节点来添加背景图片.

音效

声音和音乐可能是增强游戏吸引力的最有效方法。在游戏 art 文件夹中,有两个声音文件:“House in a Forest Loop.ogg”用于背景音乐,而“gameover.wav”用于当玩家失败时。

添加两个 AudioStreamPlayer 节点作为 Main 的子节点。将其中一个命名为 Music,将另一个命名为 DeathSound。 在每个节点选项上,点击 Stream 属性,选择 加载,然后选择相应的音频文件。

所有音频都会在禁用 循环 设置的情况下自动导入。如果希望音乐无缝循环,请单击流文件下拉箭头,选择 唯一化,然后再单击流文件并选中 循环 框。

要播放音乐, 在 new_game() 函数中添加 $Music.play(), 在 game_over() 函数中添加 $Music.stop() .

最后, 在 game_over() 函数中添加 $DeathSound.play() .

func game_over():# 定时器停止$ScoreTimer.stop()# 生成怪物定时器停止$MobTimer.stop()# 执行UI游戏结束的逻辑$HUD.show_game_over()# 背景音乐停止$Music.stop()# 播放死亡音乐$DeathSound.play()func new_game():score = 0# 调用玩家start方法$Player.start($StartPostion.position)# 倒计时2秒开始$StartTimer.start()# 更新分数$HUD.update_score(score)# 显示消息$HUD.show_message("Get Ready")# 销毁该分组中的怪物对象get_tree().call_group("mobs", "queue_free")# 循环播放背景音乐$Music.play()

键盘快捷键

当游戏使用键盘控制,可以方便地按键盘上的键来启动游戏。一种方法是使用 Button 节点的 “Shortcut”(快捷键)属性。

在上一课中,我们创建了四个输入动作来移动角色。我们将创建一个类似的输入动作来映射到开始按钮。

选择“项目 -> 项目设置”,然后单击“输入映射”选项卡。与创建移动输入动作的方式相同,创建一个名为 start_game 的新输入操作,并为 Enter 添加按键映射。

在这里插入图片描述

如果你有一个手柄,现在可以添加一个手柄支持。连接上你的手柄,然后在每一个你想添加手柄支持的输入动作下,点击 “+” 按钮然后按下该输入动作对应的按钮,方向键或者摇杆。

HUD 场景中,选择 StartButton 并在检查器中找到它的 **Shortcut(快捷方式)**属性。通过在框中单击来创建一个新的 快捷键资源,打开 Events(事件) 数组并通过单击 Array[InputEvent] (size 0) 向其添加一个新的数组元素。

在这里插入图片描述

创建一个新的 InputEventAction并将其命名为 start_game

在这里插入图片描述

这样,开始按钮出现后,你就可以点击它或按 Enter 来启动游戏。

就这样,你在 Godot 中完成了你的第一个 2D 游戏。

在这里插入图片描述

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

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

相关文章

Ubuntu技巧-Ubuntu远程访问之电信公网IP

💡 大家好,我是可夫小子,《小白玩转ChatGPT》专栏作者,关注AIGC、互联网和自媒体。 前面文章介绍了家庭服务器接入外网的三种方式的第一种,今天介绍第二种,即通过获得电脑公网IP,然后再设置动态…

QT Quick QML 网络助手——TCP客户端

GitHub 源码: QmlLearningPro ,选择子工程 Nettools.pro QML 其它文章请点击这里: QT QUICK QML 学习笔记 ● 运行效果: 左侧为常用的网络调试工具,右侧为本项目 UI 效果,前端使用 QML ,后端使用C &#xff…

linux(Ubuntu )搭C++ 最新版GDAL完整教程

在前面的文章中主要是介绍如何在windows系统下利用python安装gdal库,如下: 如何快速安装GDAL 在linux环境下python安装gdal也可以利用现成的whl文件,但是安装c GDAL环境的比较麻烦,目前网络上大多是安装的老版本的教程&#xff…

自适应学习率(Datawhale X 李宏毅苹果书 AI夏令营)

传统的梯度下降方法在优化过程中常常面临学习率设置不当的问题。固定的学习率在训练初期可能过大,导致模型训练不稳定,而在后期可能过小,导致训练速度缓慢。为了克服这些问题,自适应学习率方法应运而生。这些方法通过动态调整学习…

Spring常用的注解有哪些?作用是什么?怎么用?

一、怎么用&#xff1f; 首先需要在bean.xml文件中配置注解组件扫描&#xff0c;只有配置了组件扫描&#xff0c;spring才会去指定包下面扫描你使用了哪些注解&#xff0c;并让其生效。例如&#xff1a; <!--spring会去扫描com.frank包及其子包下所有的注解&#xff0c;并让…

引号的艺术:用CSS quotes 属性打造个性化引用

引号的艺术&#xff1a;用CSS quotes 属性打造个性化引用 摘要 CSS 的 quotes 属性是一个强大的工具&#xff0c;它允许开发者自定义网页上的引用标记&#xff0c;从而增强网页的视觉效果和用户体验。本文将深入探讨 quotes 属性的使用方法&#xff0c;包括如何设置不同的引号…

ssrf漏洞之——漏洞复现

漏洞介绍 SSRF漏洞&#xff1a;SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由恶意访问者构造url&#xff0c;由服务端对此url发起请求的一个安全漏洞。 漏洞原理 SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能&#xff0c;并且没有对目…

Python :使用 YOLOv8、ultralytics 的 YOLO 模型识别图片里面有多少辆车

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo :联系我们:VX :tja6288 / EMAIL: 347969164@qq.com 文章目录 Python :使用 YOLOv8、ultralytic…

S7通信协议从入门到精通_1_Sharp7(C#)类编写西门子 S7系列 plc驱动程序(扩展C++语言)

文章目录 1. 什么是Sharp71.1 什么是Sharp71.2 下载文件中包含的内容1.3 使用示例2. 如何使用Sharp7进行上位机开发2.1 S7-1200的配置2.2 创建示例项目2.3 连接到plc2.3 从DB读取2.4 写入DB2.5 示例代码3. 扩展3.1 C++上位软件通过Snap7开源库访问西门子S7-1200/S7-1500数据块的…

打卡52天------图论(应用题)

一、孤岛的总面积 基础题目 可以自己尝试做一做 。 代码随想录 二、沉没孤岛 和上一题差不多&#xff0c;尝试自己做做 代码随想录 三、水流问题 需要点优化思路&#xff0c;建议先自己读题&#xff0c;相处一个解题方法&#xff0c;有时间就自己写代码&#xff0c;没时间就…

工业4G路由器

设备概述 路由器是基于4G 技术研发的无线路由网关设备&#xff0c;除了具备传统路由器 的 VPN 、防火墙、 NAT 、 PPPoE 、 DHCP 等功能之外&#xff0c;还能支持 4G 无线拨号&#xff0c;提供最高可达 150Mbps 的无线高速带宽。路由器支持四个以太网接口&#xff0c;可更好…

谷歌、火狐及Edge等浏览器中实现allWebPlugin中间件自动安装及升级

allWebPlugin简介 allWebPlugin中间件是一款为用户提供安全、可靠、便捷的浏览器插件服务的中间件产品&#xff0c;致力于将浏览器插件重新应用到所有浏览器。它将现有ActiveX控件直接嵌入浏览器&#xff0c;实现插件加载、界面显示、接口调用、事件回调等。支持Chrome、Firefo…

【Kotlin设计模式】Kotlin实现单例模式

前言 单例模式&#xff08;Singleton Pattern&#xff09;&#xff0c;是确保一个类只有一个实例&#xff0c;并提供一个全局访问点来访问这个实例。在 Android 中&#xff0c;有许多系统服务和 API 使用了单例模式&#xff0c;比如&#xff1a; Context: 通过getApplication…

Mora:多智能体框架实现通用视频生成

人工智能咨询培训老师叶梓 转载标明出处 尽管已有一些模型能够生成视频&#xff0c;但大多数模型在生成超过10秒的长视频方面存在局限。Sora模型的出现标志着视频生成能力的一个新时代&#xff0c;它不仅能够根据文本提示生成长达一分钟的详细视频&#xff0c;而且在编辑、连接…

Image Stride(内存图像行跨度)

When a video image is stored in memory, the memory buffer might contain extra padding bytes after each row of pixels. The padding bytes affect how the image is store in memory, but do not affect how the image is displayed. 当视频图像存储在内存时&#xff0…

HeidiSQL中一些简单mysql语句的含义(二)

一、排序 #根据年龄进行降序排序 select * from student order by age desc; #根据年龄进行升序排序 select * from student order by age asc; #给字段起别名&#xff0c;as可以省略 select no as 编号, name as 姓名,age as 年龄 from student order by age asc; #查找…

【USRP】 Link 16 战术数据链 实训系统

Link 16 战术数据链 实训系统 一、基于USRP的Link16平台简介1、整体架构2、JTIDS终端架构3、平台特点3.1、提高技术理解与应用能力3.2、培养创新思维与问题解决能力3.3、加强跨学科融合与团队合作 4、平台建设4.1、基础理论教学模块4.2、LabVIEW 算法模块4.3、USRP仿真模块4.4、…

Unity+Addressable

前期准备 下载一个hfs本地服务器&#xff0c;打开即可 HFS ~ HTTP 文件服务器 (rejetto.com) 1.安装Addressable插件 创建组 2.使用图片创建预制体 放入Addressable Groups内 3.右键 新建组 创建预制体t拖拽放入新建组里 新组命名为Gameobject 简化名称 4.创建一个测试脚本 …

点亮编程之路:如何克服学习中的挫折感

目录 引言 一、心态调整 A. 保持积极乐观的学习态度 1. 接受错误和失败 2. 专注于过程而非结果 3. 设定合理的目标和期望 B. 培养持续学习的习惯 1. 制定学习计划 2. 定期反思和总结 3. 寻找学习的乐趣 二、学习方法 A. 有效的学习策略 1. 分解复杂问题 2. 主动实践…

第三十一章:docker如何部署Nexus

docker如何部署Nexus 目标 掌握 Nexus docker compose安装安装Docker和Docker Compose:确保您的系统已安装Docker和Docker Compose。如果尚未安装,可以参考Docker官方文档进行安装12。 创建Docker Compose文件:在您选择的目录下创建一个名为docker-compose.yml的新文件,并…