安卓(Android)游戏开发音效代码
作者:lqh 发布时间:2023-11-15 14:47:58
标签:Android,音效
游戏音效就是我们在玩游戏时出现的音乐,这个也是每个游戏必备的一部分,但有是你做游戏的背景音乐有间断的感觉的话,我们可以用getCurrentPosition()这个方法来判断一下声音播放的偏移。其实这个也是非常简单的。只要我们在代码当中设置好(初始化声音)和(加载音效资源)就可以了,别的就和音乐播放器的代码差不多,像开始,停止。不多说了,我们还是先来看看代码当中是怎么实现音效的吧:
1.音效的音量
int streamVolume;
//定义SoundPool 对象 private SoundPool soundPool;
//定义HASH表 private HashMap soundPoolMap;
/*Parameters: null
* Returns: None.
* Description: 初始化声音系统
* Notes: none.
***************************************************************/
2.初始化soundPool
public void initSounds() { //初始化soundPool 对象,第一个参数是允许有多少个声音流同时播放,第2个参数是声音类型,第三个参数是声音的品质 soundPool = new SoundPool(100, AudioManager.STREAM_MUSIC, 100);
//初始化HASH表 soundPoolMap = new HashMap();
//获得声音设备和设备音量 AudioManager mgr = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
streamVolume = mgr.getStreamVolume(AudioManager.STREAM_MUSIC);
}
/*************************************************************** * Function: loadSfx();
* Parameters: null
* Returns: None.
* Description: 加载音效资源
* Notes: none.
***************************************************************/
3.加载
public void loadSfx(int raw, int ID) { //把资源中的音效加载到指定的ID(播放的时候就对应到这个ID播放就行了) soundPoolMap.put(ID, soundPool.load(context, raw, ID));
}
/*************************************************************** * Function: play();
* Parameters: sound:要播放的音效的ID, loop:循环次数
* Returns: None.
* Description: 播放声音
* Notes: none.
***************************************************************/
public void play(int sound, int uLoop) { soundPool.play(soundPoolMap.get(sound), streamVolume, streamVolume, 1, uLoop, 1f); }


猜你喜欢
- 1. Maven简介相对于传统的项目,Maven 下管理和构建的项目真的非常好用和简单,所以这里也强调下,尽量使用此类工具进行项目构建, 它
- 说明:1、集合类型参数化;2、可根据集合中的对象的各个属性进行排序,传入属性名称即可;注:属性必须实现了IComparable接口,C#中i
- 前言在C语言中,没有专门用来表示字符串的类型。C语言的字符串是一系列以’\0’为结尾的字符的集合。虽
- 前言异步调用几乎是处理高并发,解决性能问题常用的手段,如何开启异步调用?SpringBoot中提供了非常简单的方式,就是一个注解@Async
- 本文实例讲述了Java基于链表实现栈的方法。分享给大家供大家参考,具体如下:在上几小节中我们实现了基本的链表结构,并在上一节的底部给出了有关
- filter类不能注入@Autowired变量问题描述项目中的登录是用了shiro以及filter * 。输入正确的账号密码之后却不能正常登
- 使用filter设置要排除的URL@WebFilter(urlPatterns = "/*")@Order(value
- 1、输出矩形以此矩形案例(4行,9列的矩形)为例public static void main(String[] args) {  
- 1.ArrayList以数组实现。节约空间,但数组有容量限制。超出限制时会增加50%容量,用System.arraycopy()复制到新的数
- 本文介绍在使用C#开发WinForm程序时,如何使用自定义的XML配置文件。虽然也可以使用app.config,但命名方面很别扭。我们在使用
- 开发一款App,总会遇到各种各样的需求和业务,这时候选择一个简单好用的轮子,就可以事半功倍前言 Intent intent =
- 本文实例讲述了WinFrom中label背景透明的实现方法,在应用程序开发中有着不错的实用价值。分享给大家供大家参考。具体实现方法如下:使用
- 前言:需求是这样的,在与第三方对接过程中,对方提供了token进行时效性验证,过一段时间token就会失效.后台有定时任务在获取,但是偶尔会
- Android seekbar控制音量同步更新 作为开发人员来讲,seekbar你一定会碰到,那么怎么自定义seekbar以及s
- 本文实例为大家分享了Android圆形菜单的使用方法,供大家参考,具体内容如下MainActivity.java代码:package sis
- 概念:有enum关键字修饰的类,成为枚举类1、枚举规则枚举类的对象可以有类里面定义,不支持重新new出来,枚举类有构造函数,其他的类都一样,
- 建造者模式概述建造者模式(Builder Pattern)属于创建型模式。它是将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同
- 按照常规思维,往一个map里put一个已经存在的key,会把原有的key对应的value值覆盖,然而通过一次线上问题,发现Java8中的Co
- Java8已经发布很多年了,但是很多人在开发时仍然坚持使用着Date和SimpleDateFormat进行时间操作。SimpleDateFo
- 前言:synchronized 在 JDK 1.5 之前性能是比较低的,在那时我们通常会选择使用 Lock 来替代 synchronized