android游戏教程:播放游戏声音

一.概述


没有声音只有图像的游戏是不完整的,声音是一款游戏不可缺少的元素,它可以让游戏变得更加刺激和好玩。今天将会使用zgf框架里的声音api播放背景音乐和音效,让我们开始吧。


二.声音api的用法


        打开api文档,打开com.zxx43.commen.sound ,可以看到控制声音播放函数。

        首先是构造函数Sound(Context con,int resId)和Sound(String src),调用它创建播放器和加载背景音乐。然后是CreateSoundPool(int count),此方法创建音效池,count表示最多同时能播放count个音效。调用InitSE初始化音效并获取音效id,PlaySE(int sid)播放id为sid的音效。调用PlayBGM可以播放背景音乐。


三.代码实现


   首先初始化背景音乐和拔刀音效

//初始化声音
	private void initSound(Context con) {
		sound=new Sound(con, R.raw.main);//创建播放器对象
		Sound.PlayBGM();//播放背景音乐
		Sound.CreateSoundPool(2);//创建声音池(最多同时播放两个音效)
		sudAtk=Sound.InitSE(con, R.raw.attack_2);//初始化音效并获取音效id
	}

   给人物增加一个状态,1表示行走,2表示攻击,攻击的时候播放拔刀的声音


public static final int STATE_MOV=1;
	public static final int STATE_ATK=2;


     播放人物攻击动画


else if(state==Constants.STATE_ATK) {
			if(atkTime<Constants.ATK_TIME) 
				atkTime++;
			else if(atkTime>=Constants.ATK_TIME) {
				atkTime=-atkTime/Constants.ATK_TIME;
				state=Constants.STATE_MOV;//动作播放完之后把人物状态设为行走
			}
			imgActXId=3*atkTime/Constants.ATK_TIME;
			
			switch(this.imgYId) {
				case 3:
					imgActYId=3;
					break;
				case 0:
					imgActYId=0;
					break;
				case 2:
					imgActYId=2;
					break;
				case 1:
					imgActYId=1;
					break;
			}
		}

    点圆圈按钮把人物状态变为攻击

int state=key.atkClick(con, x, y);//从按键中获得人物状态
			scene.pushAct(state);//推送获得的人物状态

     按钮被按下改变人物状态并播放音效


//是否按下攻击键
	public void pushAct(int state) {
		if(per.getState()!=Constants.STATE_ATK) {
			per.setState(state);
			if(per.getState()==Constants.STATE_ATK)
				Sound.PlaySE(sudAtk);//播放音效
		}
	}

     效果如下




    代码下载:下载

    好了,现在能播放声音了,爽吧?


    注意:原先的代码退出的时候会报错,现已修复,请下载这个:点击下载




评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值