欢迎来到天天文库
浏览记录
ID:37916343
大小:216.50 KB
页数:20页
时间:2019-06-02
《Android游戏——2048的设计(2)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Android游戏——2048的设计(2)游戏运行界面如下:实现的功能有:1.有4x4,5x5,6x6三种规则2.记录历史最高分3.使用纯色块4.保存游戏5.开启音效6.更换背景图开发工具用的是AndroidStudio游戏的思路并不复杂,甚至可以说是挺简单的。首先要自定义一个View,作为可滑动的方块(其实滑动效果是通过改变数字与颜色来模拟实现的),这个View要继承于FrameLayout每一种不同数值的方块有不同的颜色,通过设置“setBackgroundColor”来实现。publicclassCardextendsFrameLayout{privateTextVi
2、ewlabel;privateintnum=0;//用于判断是否纯色块publicbooleanflag;publicCard(Contextcontext){super(context);label=newTextView(context);label.setGravity(Gravity.CENTER);label.setTextSize(24);label.setBackgroundColor(Color.parseColor("#77E8E2D8"));LayoutParamslp=newLayoutParams(LayoutParams.MATCH_PARENT,
3、LayoutParams.MATCH_PARENT);lp.setMargins(5,5,0,0);addView(label,lp);}publicvoidsetNum(intnum){this.num=num;if(num==0){label.setText("");label.setBackgroundColor(Color.parseColor("#77E8E2D8"));}else{if(!flag){label.setText(num+"");}changeCardColor();}}publicintgetNum(){returnnum;}publicvoid
4、changeCardColor(){switch(num){case2:label.setBackgroundColor(Color.parseColor("#5DB8E8"));break;case4:label.setBackgroundColor(Color.parseColor("#A52812"));break;case8:label.setBackgroundColor(Color.parseColor("#0E7171"));break;case16:label.setBackgroundColor(Color.parseColor("#C0BB39"));b
5、reak;case32:label.setBackgroundColor(Color.parseColor("#623889"));break;case64:label.setBackgroundColor(Color.parseColor("#5C7235"));break;case128:label.setBackgroundColor(Color.parseColor("#826FA3"));break;case256:label.setBackgroundColor(Color.parseColor("#355659"));break;case512:label.s
6、etBackgroundColor(Color.parseColor("#BB719B"));break;case1024:label.setBackgroundColor(Color.parseColor("#9B8B53"));break;case2048:label.setBackgroundColor(Color.parseColor("#196A5D"));break;default:label.setBackgroundColor(Color.parseColor("#8A7760"));}}publicbooleanequals(Cardc){returnth
7、is.getNum()==c.getNum();}}此外,可以看到不管是4x4规则的或者5x5,6x6的,整个可滑动区域都是一个正方形,方块平均分布,因此可以自定义一个View,继承于GridLayout,为之添加多个Card。GameView的重点在于方块的滑动判断以及实现滑动效果。SoundPool的使用方法在Android5.0之后发生了改变,所以需要在代码中判断当前系统版本,从而使用不同的初始化方法。publicclassGameViewextendsGridLayout{//存储所有方块privateCa
此文档下载收益归作者所有