SoundPlay是将所有要用到的音效封装到一个类中,方便后续的使用,用到了HashMap容器类,忘了的回顾一下java哦!FileManager在sd卡上创建一个文件,用于保存分
数,java IO大家随意发挥,但是有一个问题是我们可以很容易的找到保存分数的文件并修改他,大家也可以用sharedpreference来保存。
1.SoundPlay类
package com.example.qgns;
import java.util.HashMap;
import android.annotation.SuppressLint;
import android.media.AudioManager;
import android.media.SoundPool;
@SuppressLint("UseSparseArrays")
public class SoundPlay {
private SoundPool sound;
private HashMap<Integer, Integer>map;
private MainActivity mainActivity;
public SoundPlay(MainActivity mainActivity){
this.mainActivity=mainActivity;
map=new HashMap<Integer, Integer>();
sound=new SoundPool(8, AudioManager.STREAM_MUSIC, 0);
}
public void initSound(){
map.put(1, sound.load(mainActivity, R.raw.button, 1));
map.put(2, sound.load(mainActivity, R.raw.get_goods, 1));
map.put(3, sound.load(mainActivity, R.raw.shoot, 1));
map.put(4, sound.load(mainActivity, R.raw.smallexplosion, 1));
map.put(5, sound.load(mainActivity, R.raw.middleexplosion2, 1));
map.put(6, sound.load(mainActivity, R.raw.bigexplosion, 1));
map.put(7, sound.load(mainActivity, R.raw.myplaneexplosion3, 1));
}
public void play(int id,int loop){
sound.play(id, 1, 1, 1, loop, 1.0f);
}
}
package com.example.qgns;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.http.util.EncodingUtils;
import android.os.Environment;
public class FileManager {
private File folder;
private File fileName;
public void initFile() {
String path = Environment.getExternalStorageDirectory().toString()
+ File.separator + "plane";
folder = new File(path);//创建一个文件夹
if (!folder.exists()) {
folder.mkdirs();
}
String path1 = path + File.separator + "score.txt";
fileName = new File(path1);//创建一个文本保存分数
if (!fileName.exists()) {
try {
fileName.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public void write(String sumScore) {//将传入的分数保存
try {
FileOutputStream out = new FileOutputStream(fileName);
byte[] b = sumScore.getBytes();
out.write(b);
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public String read() {//读取文本中的分数
String score = null;
try {
FileInputStream input = new FileInputStream(fileName);
int length=input.available();
byte[]b=new byte[length];
input.read(b);
score=EncodingUtils.getString(b, "UTF-8");
input.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return score;
}
public boolean isUse(){//判断sd卡是否可用
return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
}
}