素材巴巴 > 程序开发 >

【手把手带你Godot游戏开发】FlappyBird:6 来点MUSIC(音效系统)

程序开发 2023-09-10 11:09:50

文章目录

本章节效果图

本节增加的是音效,请大家结合下图脑补

在这里插入图片描述

步骤

1. 确认音频资源

在这里插入图片描述

2. 新建AudioManager场景

在这里插入图片描述
场景根节点“AudioManager”的类型为Node类型

在这里插入图片描述

3. 配置音频资源

注意: 共有3个以"AudioStreamPlayer"开头的节点:

本例中我们为每个音频资源,添加一个位置无关版本的音频流播放器

在这里插入图片描述

在这里插入图片描述
"AudioManager"配置完毕的样子

在这里插入图片描述

4. 添加脚本

在这里插入图片描述

5. 保存"AudioManager"场景

在这里插入图片描述

extends Nodefunc play(name : String):var sfx = find_node(name)if sfx is AudioStreamPlayer:sfx.play()
 
6. 将"AudioManager"场景设置为单例场景

关于使用自动加载(AutoLoad)实现单例场景的详细介绍,请见《
Godot Engine:用自动加载(AutoLoad)实现单例模式(Singleton)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

7. 调用"AudioManager"
# Bird.gd
 extends RigidBody2Dfunc _ready():connect("body_entered",self,"on_body_entered")func _physics_process(delta):if Input.is_mouse_button_pressed(1):AudioManager.play("sfx_swooshing")#音效linear_velocity = Vector2.UP*500angular_velocity = -3.0if rotation_degrees < -30:rotation_degrees = -30angular_velocity = 0if linear_velocity.y > 0.0:angular_velocity = 1.5func on_body_entered(_body):if _body is StaticBody2D:AudioManager.play("sfx_hit")#音效print("Die.....")
 
#ScoreArea.gdextends Area2Dfunc _ready():connect("body_exited",self,"_on_body_exited")
 func _on_body_exited(_body):if _body.name == "Bird":AudioManager.play("sfx_point")#音效print("得分!!!!")
 

标签:

素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。