安卓大作业
团队成员:
盖星辰:https://www.cnblogs.com/161gxc/
杨虎秀:https://www.cnblogs.com/yanghuxiu/
张雄:https://www.cnblogs.com/zhangxiongwx/
代码链接:https://git.coding.net/gxc161/android3.git
apk链接:https://git.coding.net/gxc161/android3.git
演示视频:https://www.bilibili.com/video/av39963775
项目介绍:
这是一个类似是男人就下一百层的闯关游戏,玩家控制着小人不断下落,积累积分。
刚进入游戏的界面:
其他操作界面:
游戏运行界面:
实现的功能:
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; } }
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(); }
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(); }
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; }
遇到的问题:
盖星辰,学号:1600802007,在做项目遇到的问题有:
1、踏板的生成位置不好控制,不能出现必死局面。
解决方法:设计踏板类与算法。
2、小人移出踏板后的运动轨迹太难计算,且游戏难度太高。
解决方法:不计算运动轨迹,让玩家在小人在空中时也能控制小人移动。
张雄,学号:1600802032在编写该游戏的代码时,我遇见了两个问题,一是数据传输和存储,二是数据库被锁异常。
(1)数据传输存储:最初用Inyent来传输数据,但是数据没有正常传输,后来通过设置继承了一个Application的类解决了数据在不同Activity中传输的问题
(2)数据库被锁异常:可以出现此问题的一种情况是:创建多个SQLiteOpenHelper实例,一个对应的连接正在写,另一个getWritableDatabase 。 需要避免创建多个实例。
.杨虎秀,学号1600802029
(1)不知道怎么保持竖屏,上网查询之后,在xml文件里加上android:screenOrientation="portrait"语句就好了。
(2)不知道怎么实现页面的跳转,解决方法是后面直接用canvas函数配合switch进行绘画界面。
对其他组的评价
1)洪居兴组:旅游APP
总结:完成了注册和手机号验证登录,功能齐全,界面做的比较好
优点:功能实现多,手机验证码登录和地图位置两个功能做的很棒,界面也比较美观。
缺点:每次打开时就要重新登录一次,景区和酒店搜索功能还没有实现。
如果我们优化:我们会实现可以搜索景区和酒店这块功能。
(2)李怡龙组 网络连接APP
总结:他做的这个很新奇,时效型很好。
优点:他做的有pc部分与安卓部分,涉及到了很多没有学过的,实现的功能为对局域网的连接与各种设置。
缺点:app在某些情况下会出现闪退情况。
如果我们优化:先将app的闪退问题解决,然后再对项目的其他需求进行完善。
(3)李钊组
总结:整体设计不错,功能齐全
优点:这个app不仅可以查看世界排名,还可以查找自己喜欢的或者查看优秀球员的视频。布局不错,看的很清楚
缺点:有的查看视频看不了,希望可以处理一下
如果我们优化:可以添加进行查看实时视频的模块。
(4)韩璐组 音乐播放器APP
总结:界面,包括APP的图标都比较好看
优点:可以把从内存卡中获取的本地音乐添加到另外一个播放列表中,包括APP的图标都比较有特色。
缺点:音量控制没有写出来。
如果我们优化:我们会把音量控制这个功能实现。
(5)李凌龙组 简易账本APP
总结:记录一些生活中的小开销,让人们对自己的日常资金流向很清楚。
优点:在新建的账本中可以插入多条信息,对已经记录的账目可以进行修改。
缺点:没有加密和录音这两个模块
如果我们优化:我们会把加密和录音这两个功能实现。
姓名 |
分工 | 工作比例 | 分数 |
盖星辰 | 后端代码 | 4 | 4 |
杨虎秀 | 前端界面 | 3 | 3 |
张雄 | 数据库、收集素材、播放歌曲 | 3 | 3 |