今天主要学习的是拼图游戏的操作步骤的回放
要想实现回放,首先要记录打乱状态后准备就绪等待玩家操作时候的每一个切块的位置,这里在打乱操作完成后,我们记录一次每一个切块的id就可以了,把当前id的排列顺序记录到一个一维数组中就行了。
记录好打乱状态后,我们还需要写一个方法来在用户赢了过后重新恢复每一个切块的位置为当初打乱过后的位置。
要实现回放需要记录玩家的每一步操作,我们在移动的方法中,把每次交换的两个id分别记录下来,以一个数组的方式存放到一个集合中去,这样,玩家每操作一步,我们就记录一次。
具体的回放就是一个自动交换id的过程,我们只需要遍历集合中的元素,每找到一个元素,我们就让这个元素中的两个id值进行交换,然后把图换出来,这样不断的取集合中的值,就能实现回放的效果了。
具体代码还有一点小bug,处理好了再写上。
menu菜单的添加,menu菜单就是触摸屏幕下档的菜单键给我们的一个选项,有点类似于一个Dialog,在屏幕的下方弹出,这个只需要在activity中重写onCreatMenu方法,然后往里面添加各个选项即可,通过add()方法添加onCreateOptionsMenu方法,然后往里面添加各个选项即可,通过add()方法添加
menu的点击事件就是重写onOptionsItemSelectedmenu方法来实现的,通过item.getItemId()的id来判断用户点击的是哪个选项。
实例:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, 0, 0, "返回游戏");
menu.add(0, 1, 0, "游戏帮助");
menu.add(0, 2, 0, "游戏设置");
menu.add(0, 3, 0, "返回选关");
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case 0:
break;
case 1:
Intent intent = new Intent(this, HelpActivity.class);
startActivity(intent);
finish();
break;
case 2:
Intent intent_2 = new Intent(this,SettingActivity.class);
startActivity(intent_2);
finish();
break;
case 3:
Intent intent_3 = new Intent(this, StartActivity.class);
startActivity(intent_3);
finish();
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}