尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

可视化游戏开发平台的实现-音频的简单使用

可视化游戏开发平台的实现-音频的简单使用
📅 发布时间:2026/7/29 2:36:28

演示基于整合了phaser游戏框架的开发平台中音频的简单使用,这里以制作一个风铃为例。事先需要准备一些资源:风铃声音文件、风铃图片。

创建游戏

拖动“游戏容器”到界面中即可,无需特别配置

图1.添加游戏

场景

创建场景前,需要先创建场景面板,再往面板中拖入“游戏场景”组件。

图2.添加场景

属性配置

真实物理环境能让我们减少很多物理监测代码,所以这里启用真实物理支持,为了视觉效果好一点(主要是会显示物理连接线),这里我们启用物理调试

图3.配置场景

预加载

预加载是一个面板,用来容纳预加载的资源,这个组件对应phaser的scene的preload阶段

图4.添加预加载面板
加载风铃音频

资源类型选择audio

图5.加载音频

在地址簿中写上音频文件所在地址(会存在跨域问题,这里演示就加载同域名下的文件)

图6.配置音频地址
加载风铃图片

加载类型选择spritesheet,这里加载的是一张组合图,然后写上图片地址

图7.加载风铃图片

这里点击配置填写配置信息

图8.配置切图尺寸

创建阶段

事先创建一个变量,这个边是一个长度为8的数组,用来记录8个音频的状态

图9.添加声音池绑定变量
创建音频对象

这里我们创建8个音频,通过迭代的方式比较方便,迭代器的数据源就绑定到上面的数组,这样就能创建8个音频

图10.创建声音池

拖入音频到迭代器中

图11.创建声音池元素

声音资源选择之前预加载配置的声音文件

图12.配置声音池元素资源
配置声音资源

播放监听绑定到上面数组中的play属性,这样,当play变化时就播放声音

图13.配置播放监听
配置播放完毕事件

需要在音频播放完毕时修改play的值,这个值用于判断当前音频是否处于播放中

图14.配置事件

配置代码如下,即complete事件中设置playing为false

return { complete(phaser,game,scene,sound,scope) { scope['design-ui-phaser-sound-add-1781313144735'].data.playing = false } }
图15.播放完毕重置状态
创建图片栈

拖动图栈物质组件到创建面板中

图16.添加图栈

设定具体属性,这里我们创建8个元素,即8列1行,由于存在重力原因,每个元素会垂下去,又因为有拉扯,看上去就和1列8行一样了。

图17.配置图栈

编辑创建后执行方法,让元素接受事件

图18.添加创建后执行的代码

设定元素支持事件,设定显示层级

composite.bodies.forEach(c => { c.gameObject.depth = 1000 c.gameObject.setInteractive({ useHandCursor: true }) c.gameObject.on('pointerdown',() =>{ console.log(c.id) }) })
图19.让元素支持事件响应
绑定物理body

拖动一个绑定刚体组件到图栈物质组件里面,目的时用于绑定图栈里面的一个元素

图20.创建刚体

这里,我们绑定最后一个

图21.绑定刚体
配置碰撞事件

配置事件,让元素在碰撞的时候发出声音,即风铃晃动时发声

图22.编辑碰撞事件

先找到没有播放的音频,然后更改play的值并设定为播放状态

for(let i = 0;i < $__fengSoundPool__.length;i++) { if(!$__fengSoundPool__[i].playing) { $__fengSoundPool__[i].play = Math.random() $__fengSoundPool__[i].playing = true console.log('播放第' + i + '个音频') return } }
图23.碰撞播放音频

效果

当用鼠标拨动风铃的时候,就会播放风铃的声音,如果声音池中的8个音频都在播放中,就不会产生新的声音(这里需要添加支持matter鼠标指针约束)

图24.播放声音

相关新闻

  • ArkTS 进阶之道(7):@State 真做了啥?从赋值就刷 UI 理解依赖追踪
  • 172.2026年国家级科研瓶颈 | 机床热误差实时建模与补偿(温度场-变形场)
  • Unity3D动态场景节点管理:架构设计与性能优化实战

最新新闻

  • Stateflow代码生成全解析:从模型到嵌入式C代码的实战指南
  • WSL中配置ADB连接Android设备:TCP/IP桥接方案详解
  • 嵌入式内存管理进阶:RT-Thread memheap多堆管理实战解析
  • C++区间合并算法详解:从核心原理到工程实践
  • 7.5 负载均衡:别让炒股抢走你写代码的CPU
  • 2026年7月出售激光整平机/山东四轮激光整平机厂家推荐测评_山东励盛机械科技有限公司 - 品牌宣传支持者

日新闻

  • 金融舆情监测系统:多语言情感分析与实时可视化技术解析
  • QT C++调用Python异常处理:PyBind11实战与跨语言编程指南
  • A-47双麦回音消除模块:主次麦空间分布与差分连接对ENC性能的影响

周新闻

  • 大连理工大学与东京大学联手打造的“主动型AI助手“
  • 170.2026年国家级科研瓶颈:超精密单点金刚石切削(SPDT)光学表面生成
  • SongBloom:革命性歌曲生成框架深度解析——如何通过交织自回归与扩散模型创作完整音乐

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号