# 基于高德地图API的熊猫打天下Android手游开发
## 一、概述
此项目主题内容如下:
<ol>
<li>云端服务器存储用户数据。</li>
<li>图片素材的搜集、界面UI的设计。</li>
<li>调用高德地图API实现地图上的选点操作。</li>
<li>游戏界面供玩家通过游戏的虚拟操作占领真实世界的POI。</li>
<li>提供商店、升级、天赋值等功能,提升游戏的可玩性。</li>
</ol>
## 二、需求分析
### 1、程序主体图片素材搜集、界面UI设计
图片素材来源:千图网、摄图网、百度图片。
素材格式:psd、jpg、png
图片处理软件:Photoshop CS6
图片导出格式:jpg、png、gif
图片需求:<br>
(1)应用背景图片(注册登录背景、游戏背景、其他背景)<br>
(2)游戏点击按钮图片(注册、登录、定位、个人信息、商店、保存、帮助等)<br>
(3)玩家游戏图片(熊猫、野怪、竹罐等)<br>
(4)游戏中动画效果gif图(扔竹子、放闪电等)<br>
### 2、玩家数据存储
本实验使用阿里云的ECS服务器,需在服务器上搭建MySQL数据库。<br>
安全起见,云端数据库操作需通过调用云端的jsp文件,并获取返回的JSON数据。<br>
为调用云端的jsp文件,需在服务器上搭建Tomcat。<br>
### 3、调用高德地图API
需要学习高德API在安卓开发中的函数、方法的使用。<br>
申请一个高德API的key、并下载部署高德地图SDK。<br>
高德地图整体的绘制和调用。<br>
### 4、游戏界面的设计和实现
设计游戏的规则和玩法(本项目采用精灵宝可梦类型的游戏设计方案)<br>
游戏功能的实现(事件监听、进程调用、GIF动画的播放等)<br>
### 5、细节处理及其他功能的实现
个人信息、商店、帮助界面;游戏后经验、竹子的获取;各种bug修复等等<br>
## 三、软件实现
### 1、服务器端配置、玩家数据的存储和调用
本项目用了阿里云的ECS服务器,服务器操作系统为Centos 6.3。<br>
首先在服务器端配置MySql,并创建相应数据库和表。<br>
通过jsp文件,实现数据库的调用。此次项目一共写了6个jsp文件,为getPlayerDetails.jsp、getUserDetails.jsp、Register.jsp、UpdateUserData.jsp、GetPoiData.jsp、occupyPOI.jsp,分别实现了获取指定玩家的资料、获取当前用户的资料、注册、更新当前用户的资料、获取选中POI的是否被占领信息、占领指定POI的功能。<br>
配置Tomcat,并将写好的jsp项目放到Tomcat的webapps文件夹内。保证该jsp文件的远程调用。<br>
### 2、注册、登录界面实现
考虑到安全性的问题,此项目没有直接调用云端数据库,而是采用安卓程序获取表单、控件输入的值(例如账号密码等),将这些获取的值作为参数传入服务器端的jsp文件,服务器端的jsp文件通过所得的值,并借这些值进行数据库操作,将数据库返回的内容封装为一个json类型返回给安卓程序。<br>
安卓程序解析该返回的json值,获取其中的参数,并将相应的数据参数赋值给myplayer静态对象,用来表示该用户的所有信息。<br>
### 3、高德地图API的调用
首先申请一个高德地图API的key,部署高德地图SDK,并在AndroidManifest.xml中配置相关权限和API的key。<br>
在相应页面的xml中放入com.amap.api.maps.MapView对象,用来显示高德地图。在相应的java文件中重写OnCreate、OnResume、OnPause、OnDestroy等方法。调用高德地图封装好的getPois方法获取当前位置附近的POI(信息点),并依次添加到ListView中。玩家通过点击选中相应的ListView,进而决定攻不攻占该城池(POI)。<br>
### 4、细节处理
通过对用户安卓手机定位、Wifi功能的开关状态来提示用户要不要打开GPS/Wifi服务。<br>
考虑到玩家进行游戏的过程中,因为网络不稳定的原因导致数据存储失败的情况。在游戏主界面添加了手动存储的按钮,玩家在网络情况较好的情况下可以手动进行数据的保存。<br>
考虑到程序运行兼容性的问题,将目标SDK调整到21。并且,每个界面的控件布局均在后端java代码中调用自己封装的setMargins方法动态设定。<br>
## 四、总结
此次项目实践遇到了许多问题也解决了许多问题。<br>
在服务器端数据库调用方面,起初往表里Insert数据时,插入中文数据会显示乱码或者问号。解决方法是将服务器端Centos系统语言更换为中文,并将数据库的字符编码更换为UTF-8,最重要的是在调用数据库时,要将传过来的中文字符用UTF-8解码器解码再进行查询语句的执行。<br>
高德地图API的调用,通过翻看官方文档以及学习官方Demo,后解决了不少问题。例如不能自动定位,定位针不能移动等。<br>
最大的难点其实还在App程序的兼容性上,在模拟器或自己手机上测试通过的程序,在其他手机上可能还会有问题。我们组,之前一直使用模拟器测试,但到真机测试的环节是,却发现部分机型(华为、oppo)之类的手机无法获取GPS权限,导致高德地图无法定位。最后通过调低目标API解决的问题。<br>
此次项目实践其实大的难点并不多,主要都是一些小细节问题,搞清楚一个就能搞清楚所有相似类型的问题。此外,与自己本身的基础也有很大的关系。在实践之前,我对服务器、数据库的操作已经相对熟练,对html、jsp、java语言也有一定的基础,之前也有过高德地图API的使用经验。因此写起代码来还算得心应手,不至于遇到技术难点。<br>
由于本次由我来负责游戏环境大框架的编写,因此我也需要对每个人的分工进行详细的指示,共同引用的数据结构也要一模一样。在开工前,我们小组三个人也一起抽空开过一个小会,共同商议程序的结构、内容。三个人共同开发同一款游戏,最重要的就是相互之间的熟悉与默契。个人不单单要考虑个人的任务,也同时要考虑小组其他成员的工作。通过此次项目开发,经常单打独斗的我也深刻体会到团队合作的重要性,众人拾柴火焰高。<br>
我们小组此次合作完成的《熊猫打天下》这款游戏最大的特色是真实玩家通过虚拟对战占领真实的地点。游戏方式新颖,发展前景很广。后期可以考虑给游戏主体加上更多的玩法、模式。还可以与美团等软件合作,如若玩家占领的POI是一个咖啡馆,即可通过美团获得该咖啡馆的优惠券等等。<br>
此次项目锻炼了自己的动手能力,让我亲身体会了一个完整的安卓项目开发的全过程。此次项目基本完成初期设定的需求及目标。<br>
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于高德地图API的熊猫打天下Android手游开发,安卓移动开发课程设计/Android期末大作业, - 运行中有什么问题可以私聊博主,本人高级安卓工程师,主页置顶有常见爆红解决的方法,以及更多代码项目 ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
资源推荐
资源详情
资源评论
收起资源包目录
基于高德地图API的熊猫打天下Android手游开发,安卓移动开发课程设计/Android期末大作业 (178个子文件)
gradlew.bat 2KB
database - 副本.docx 38KB
fireball.gif 96KB
riceroll.gif 89KB
riceroll.gif 89KB
lighting.gif 71KB
lighting.gif 59KB
arrow.gif 56KB
bamboo.gif 35KB
bamboo.gif 35KB
.gitignore 118B
.gitignore 7B
build.gradle 1KB
build.gradle 498B
settings.gradle 15B
gradlew 5KB
Android_Map3D_SDK_V5.3.0_20170815.jar 2.52MB
AMap_Search_V5.3.1_20170817.jar 498KB
glide-3.7.0.jar 464KB
AMap_Location_V3.5.0_20170731.jar 322KB
alipaySdk-20170922.jar 309KB
Volley.jar 154KB
commons-logging-1.1.1.jar 59KB
gradle-wrapper.jar 52KB
activation.jar 50KB
additionnal.jar 45KB
Game.java 26KB
MapChoosePOI.java 25KB
Pay.java 16KB
UserDetails.java 9KB
LoginActivity.java 9KB
ChooseCharacter.java 9KB
SignIn.java 9KB
Base64.java 7KB
Shop.java 7KB
Player.java 7KB
SignUp.java 6KB
SendMSG.java 5KB
OrderInfoUtil2_0.java 5KB
SearchResultAdapter.java 3KB
HttpUtils.java 3KB
MusicBackground.java 3KB
AuthResult.java 2KB
Fireball.java 2KB
Lighting.java 2KB
Riceroll.java 2KB
Bamboo.java 2KB
Arrow.java 2KB
Help.java 2KB
Character.java 2KB
SignUtils.java 1KB
MyApplication.java 1KB
PayResult.java 990B
ExampleInstrumentedTest.java 754B
Temp.java 687B
ExampleUnitTest.java 403B
signin_signup_bg.jpg 1.82MB
shop_bg.jpg 561KB
help_bg.jpg 467KB
login_bg.jpg 107KB
timg.jpg 31KB
README.md 7KB
background.mp3 3.36MB
lighting.mp3 66KB
bamboo.mp3 30KB
fireball.mp3 22KB
arrow.mp3 13KB
shop_bg.png 799KB
商店1.png 799KB
signin_signup_panel_bg.png 697KB
bg.png 613KB
sixty_7000.png 495KB
eighteen_2000.png 491KB
six_600.png 485KB
pigking.png 253KB
foodiepanda.png 236KB
superpanda.png 216KB
confirm_bt.png 187KB
zhugepanda.png 166KB
signup_bt.png 159KB
signin_bt.png 158KB
pig.png 143KB
hp_plus.png 103KB
energy_plus.png 95KB
attack_bt.png 90KB
icon.png 60KB
location_unselected.png 47KB
location_selected.png 47KB
add_bt.png 43KB
location_pressed.png 43KB
sendmsg_help.png 34KB
alipaylogo.png 26KB
money_plus.png 22KB
quit_bt.png 20KB
help_bt.png 17KB
ic_launcher_round.png 14KB
ic_launcher.png 10KB
ic_launcher_round.png 10KB
ic_launcher.png 8KB
doctorpanda.png 7KB
共 178 条
- 1
- 2
资源评论
.Android安卓科研室.
- 粉丝: 4437
- 资源: 2463
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功