level 6
樱花落尽雪未央
楼主
最近有个作业是要写一个类似天天爱消除的游戏,游戏的规则啥的改了点。
是要求用java语言在客户端上写,先后点击相邻的宠物,完成图片交换,如果能够出现“三连”等,就会被消除掉,而如果交换后没有出现三连,就要换回来
遇到的代码问题是两次相邻的点击之后,宠物图片交换,检测完不能消除时,则再把图片换回来。。。。。。一开始不写换回来,还能交换的,后来加上换回的代码,整个两次点击,图片都是不动的。
想问下各位,有没有写过这个游戏的或者写过遇到图片交换的项目的,能不能指导下小弟,方法或者代码贴来看下,感激不尽啊。
附代码片段如下:
/*
* 将相邻的点击之后的宠物放在一个队列中,pet1是后点击的,pet2是先点击的
* 这是它们的交换方法
*/
Pet pet1=list.get(1);
Pet pet2=list.get(0);
//先保存下来各自的行列
int row1=pet1.row;
int col1=pet1.col;
int row2=pet2.row;
int col2=pet2.col;
//这个是检测两个相邻,先点左边,再点右边
if(pet1.row==pet2.row&&pet1.col-pet2.col==1){
//图片交换
pet1.setCol(pet1.col-1);
pet2.setCol(pet2.col+1);
/*这是包装了Thread.sleep(millis)方法的工具类,主要经常用到,要抛异常
*等到图片运动到位之后,把游戏界面上的数组里的宠物对象更新一下
*/
Util.sleep(200);
//更新宠物对象
PlayStation.pets[row2][col2]=pet1;
PlayStation.pets[row1][col1]=pet2;
//如果不能消除掉
if(!ps.eliminate("row",pet2,pet1)){
//把宠物图片换回来,跟上边的类似
pet1.setCol(pet1.col+1);
pet2.setCol(pet2.col-1);
Util.sleep(200);
PlayStation.pets[row1][col1]=pet1;
PlayStation.pets[row2][col2]=pet2;
}
return;
}
2014年04月26日 07点04分
1
是要求用java语言在客户端上写,先后点击相邻的宠物,完成图片交换,如果能够出现“三连”等,就会被消除掉,而如果交换后没有出现三连,就要换回来
遇到的代码问题是两次相邻的点击之后,宠物图片交换,检测完不能消除时,则再把图片换回来。。。。。。一开始不写换回来,还能交换的,后来加上换回的代码,整个两次点击,图片都是不动的。
想问下各位,有没有写过这个游戏的或者写过遇到图片交换的项目的,能不能指导下小弟,方法或者代码贴来看下,感激不尽啊。
附代码片段如下:
/*
* 将相邻的点击之后的宠物放在一个队列中,pet1是后点击的,pet2是先点击的
* 这是它们的交换方法
*/
Pet pet1=list.get(1);
Pet pet2=list.get(0);
//先保存下来各自的行列
int row1=pet1.row;
int col1=pet1.col;
int row2=pet2.row;
int col2=pet2.col;
//这个是检测两个相邻,先点左边,再点右边
if(pet1.row==pet2.row&&pet1.col-pet2.col==1){
//图片交换
pet1.setCol(pet1.col-1);
pet2.setCol(pet2.col+1);
/*这是包装了Thread.sleep(millis)方法的工具类,主要经常用到,要抛异常
*等到图片运动到位之后,把游戏界面上的数组里的宠物对象更新一下
*/
Util.sleep(200);
//更新宠物对象
PlayStation.pets[row2][col2]=pet1;
PlayStation.pets[row1][col1]=pet2;
//如果不能消除掉
if(!ps.eliminate("row",pet2,pet1)){
//把宠物图片换回来,跟上边的类似
pet1.setCol(pet1.col+1);
pet2.setCol(pet2.col-1);
Util.sleep(200);
PlayStation.pets[row1][col1]=pet1;
PlayStation.pets[row2][col2]=pet2;
}
return;
}