这是一个类似是男人就下一百层的闯关游戏,玩家控制着小人不断下落,积累积分。 实现的功能:1、小人左右移动。2、自动生成挡板。3、检测失败条件。4、实现难度控制。5、记录得分并实现排行榜。6、播放音乐。7、流畅播放小人下落的动画。关键代码:1、难度控制: private void setGameLevelAndMen(){ //难度修改 switch (level){ case "小儿科": moveTime =12; addPadelTime =150; break; case "老年痴呆": moveTime =8; addPadelTime =180; break; case "精神病": moveTime =5; addPadelTime =250; break; case "疯人院": moveTime =3; addPadelTime =200; break; } } View Code 2、按键响应 public void onClick(View view) { //用户点击了暂停按钮 sp.play(songID,1,1,0,0,1); padel.suspendGame(); mp.pause(); new AlertDialog.Builder(this).setTitle("暂停").setMessage("暂停了游戏").setPositiveButton("返回主菜单" , new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { mp.release(); mp=null; finish(); } }).setNegativeButton("继续游戏", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { padel.continueGame(); mp.start(); } }).setCancelable(false).show(); } View Code public void onBackPressed() { //用户按下返回键的监听事件 padel.suspendGame(); mp.pause(); new AlertDialog.Builder(this).setTitle("暂停").setMessage("暂停了游戏").setPositiveButton("返回主菜单" , new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { mp.release(); mp=null; finish(); } }).setNegativeButton("继续游戏", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { padel.continueGame(); mp.start(); } }).setCancelable(false).show();
}
View Code 3、小人移动代码 public boolean onTouchEvent(MotionEvent event) { if(event.getX()>x){ //右边 if((menX +man.getWidth())<dm.widthPixels) man.setTranslationX(menX +=10); } if(event.getX()<x){ //左边 if(menX >0) man.setTranslationX(menX -=10); } return true; } View Code