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

本章节效果图

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

在这里插入图片描述

步骤
1. 确认音频资源

在这里插入图片描述

2. 新建AudioManager场景

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

在这里插入图片描述

3. 配置音频资源

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

  • AudioStreamPlayer:位置无关的音频流播放器(2D/3D通用)
  • AudioStreamPlayer2D位置相关的音频流播放器2D
  • AudioStreamPlayer3D位置相关的音频流播放器3D

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

在这里插入图片描述

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

在这里插入图片描述

4. 添加脚本

在这里插入图片描述

5. 保存"AudioManager"场景

在这里插入图片描述

extends Node

func 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 RigidBody2D


func _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*500
		angular_velocity = -3.0
	if rotation_degrees < -30:
		rotation_degrees = -30
		angular_velocity = 0
	if linear_velocity.y > 0.0:
		angular_velocity = 1.5

func on_body_entered(_body):
	if _body is StaticBody2D:
		AudioManager.play("sfx_hit")#音效
		print("Die.....")
#ScoreArea.gd

extends Area2D

func _ready():
	connect("body_exited",self,"_on_body_exited")
func _on_body_exited(_body):
	if _body.name == "Bird":
		AudioManager.play("sfx_point")#音效
		print("得分!!!!")
  • 26
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 74
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 74
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开发游戏的老王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值