拼图小游戏”ST--拼图“开发篇之主要功能的实现(二)

上篇我们写到图片的初始化时,必须对倒置数进行判断,不然可能会出现最后两张图片总是异位的bug

我们接着往下来

图片初始化,那么我们必须先获取图片,所以我们在初始化图片之前,我们需要先将图片获取到,考虑到图片那么多,如果一张一张的获取,那样程序就会很复杂,也显得很乱,所以我使用了一个帮助类,来实现图片的管理

代码如下:

public class DataHelper_easy {

	public static int number6[] = new int[] { R.drawable.img1, R.drawable.img2,
			R.drawable.img3, R.drawable.img4, R.drawable.img5, R.drawable.img6,
			R.drawable.img7, R.drawable.img8, R.drawable.nulls,
			R.drawable.img9, R.drawable.mengbao_small, R.drawable.mengbao };
	public static int number2[] = new int[] { R.drawable.easy_b_01,
			R.drawable.easy_b_02, R.drawable.easy_b_03, R.drawable.easy_b_04,
			R.drawable.easy_b_05, R.drawable.easy_b_06, R.drawable.easy_b_07,
			R.drawable.easy_b_08, R.drawable.nulls, R.drawable.easy_b_09,
			R.drawable.chenyanxi_small, R.drawable.chenyanxi };
	public static int number3[] = new int[] { R.drawable.easy_c_01,
			R.drawable.easy_c_02, R.drawable.easy_c_03, R.drawable.easy_c_04,
			R.drawable.easy_c_05, R.drawable.easy_c_06, R.drawable.easy_c_07,
			R.drawable.easy_c_08, R.drawable.nulls, R.drawable.easy_c_09,
			R.drawable.car_small, R.drawable.car };
	public static int number4[] = new int[] { R.drawable.easy_d_01,
			R.drawable.easy_d_02, R.drawable.easy_d_03, R.drawable.easy_d_04,
			R.drawable.easy_d_05, R.drawable.easy_d_06, R.drawable.easy_d_07,
			R.drawable.easy_d_08, R.drawable.nulls, R.drawable.easy_d_09,
			R.drawable.light_small, R.drawable.light };
	public static int number5[] = new int[] { R.drawable.easy_e_01,
			R.drawable.easy_e_02, R.drawable.easy_e_03, R.drawable.easy_e_04,
			R.drawable.easy_e_05, R.drawable.easy_e_06, R.drawable.easy_e_07,
			R.drawable.easy_e_08, R.drawable.nulls, R.drawable.easy_e_09,
			R.drawable.blank_small, R.drawable.blank };
	public static int number1[] = new int[] { R.drawable.easy_g_01,
			R.drawable.easy_g_02, R.drawable.easy_g_03, R.drawable.easy_g_04,
			R.drawable.easy_g_05, R.drawable.easy_g_06, R.drawable.easy_g_07,
			R.drawable.easy_g_08, R.drawable.nulls, R.drawable.easy_g_09,
			R.drawable.baoluo_small, R.drawable.baoluo };
	public static int number7[] = new int[] { R.drawable.easy_f_01,
			R.drawable.easy_f_02, R.drawable.easy_f_03, R.drawable.easy_f_04,
			R.drawable.easy_f_05, R.drawable.easy_f_06, R.drawable.easy_f_07,
			R.drawable.easy_f_08, R.drawable.nulls, R.drawable.easy_f_09,
			R.drawable.hourse_small, R.drawable.hourse };

}
因为我考虑到如果游戏中只有一张图片可以拼,那么客户的使用体验肯定不是特别的好,所以便多准备了几张图片供用户使用


其中的 "01"--"08"是一张拼图的前八张图片,也就是我们拼图的时候出现的八张图片,"nulls"是一张空白图片,也就是上一篇中提到的那个空白控件,"09"是拼图的第九张图片,用来向用户最后展示完整的拼图效果,“small”这张是一张较小的图片,主要是显示在Menu上面的一个小的预览图,当用户点击这张小预览图时,就会跳转到预览界面,向用户展示一张大的预览图,也就是上面数组中的最后一个数据

我们在初始化之前就可以直接调用这些图片了

代码如下:

	// 获取图片组的位置
	private void getImageAdress() {
		// TODO Auto-generated method stub
		// 获得图片地址数组
		for (int i = 0; i < 12; i++) {
			gameover[i] = DataHelper_easy.number1[i];
			number[i] = DataHelper_easy.number1[i];

		}
	}
其中的数组gameover[]和number[]数组其实是一样的,我之所以这么来操作,是因为在后面的操作中,我们会操作number[],所以number[]会改变,但是我们还需要初始时的数据,所以便定义了一个gameover[]数组来完成这个“中介”功能

因为程序中有用到记步功能,还有就是记录最好成绩的功能,这只是一个小游戏而已,只需要记录一个最好成绩即可,不需要记录大量的数据,所以我这里使用的sharepreferences来实现该功能

当然,开始的时候会启动sharepreferences来判定是否存储有之前的记录,如果有记录,则显示出来,如果没有,那么“tv1”的值就是“”;

代码如下:

	private void initshaerPreferences() {
		String db="info_easy";
		SharedPreferences sharedPreferences = getSharedPreferences(db,
				MODE_PRIVATE);
		int socer_db = sharedPreferences.getInt("socer_db", 0);
		if (socer_db == 0) {
			tv1.setText("");

		} else {
			tv1.setText("最好成绩是" + socer_db + "步");
		}
	}

这么下来,我们的初始化工作基本完成了


你可能感兴趣的:(游戏,android,开发,初始化,拼图)