您的位置:首页 > 移动开发 > Android开发

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

2013-07-13 11:48 381 查看

一.概述

没有声音只有图像的游戏是不完整的,声音是一款游戏不可缺少的元素,它可以让游戏变得更加刺激和好玩。今天将会使用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);//播放音效
}
}


效果如下



代码下载:下载
好了,现在能播放声音了,爽吧?

注意:原先的代码退出的时候会报错,现已修复,请下载这个:点击下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: