制作简单游戏:第五部分
完整项目见此处。请先阅读第一部分、第二部分、第三部分和第四部分。
音频与粒子
音频
音频是游戏的重要组成部分,既向玩家反馈输入已生效,也能营造情绪与氛围。
Keepy Up 有三种音频:背景音乐、击中足球的点击声音,以及失败时的低沉长号音效。它们的处理略有不同。
音乐与短音效
背景音乐与失败短音效的处理类似,主要区别是音乐设置为循环。在 game.js 中,通过脚本属性引用带声音组件的实体,然后播放和停止对应槽位。
this.audio.sound.stop(); // stop current sound playing
this.audio.sound.play("gameover") // play the 'gameover' slot
击球音效
击球音效直接挂在足球实体上,是短促的非循环音频,每次点击命中球时播放。
this.entity.sound.play("bounce");
粒子

Keepy Up 只有一个粒子效果:每次点击足球时触发的尘土云。它不循环,需要正确设置位置与旋转,使尘土在播放时远离球体。
this.impactEffect.setLocalPosition(tmp);
this.impactEffect.particlesystem.reset();
this.impactEffect.particlesystem.play();
this.impactEffect.lookAt(this.entity.getPosition());
此代码调用 reset() 和 play() 重新启动单次粒子效果,并设置其位置与旋转,使其朝向球心。

通过粒子编辑器中的 Local Velocity(局部速度)曲线,将粒子设置为背离效果朝向发射,即沿正 Z 轴移动。
继续阅读第六部分。