飞机大战-SoundPlay和FileManager


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);
	}

}


2.FileManager

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);
	}
	

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值