课程设计个人报告——基于ARM实验箱的捕鱼游戏的设计与实现
个人贡献
实验环境的搭建
代码调试
在电脑上成功运行
在ARM实验箱上成功实现
给程序增加功能(没成功)
研究程序代码撰写小组报告
一、实验环境
Eclipse软件开发环境;
ARM实验箱(HonyaS5PC100);
windows操作系统。
二、实践内容
Windows环境下ARM集成开发环境的搭建与使用;
安装软件到模拟器;
连接ARM实验箱与PC机;
将工程代码在ARM实验箱上实现;
给程序增加新的功能。
三、实践步骤
3.1 Windows环境下ARM集成开发环境的搭建与使用
安装包下载地址:Android 开发包国内下载地址
3.1.1 安装JDK和配置Java开发环境
把准备好的Eclipse和JDK安装到本机上(最好安装在全英文路径下),并给JDK配置环境变量,其中JDK的变量值为JDK安装路径的根目录,如我的为:D:\Program Files\Java\jdk1.7.0_02;
安装完成后利用以下步骤检查安装是否成功:打开Windows命令窗口,在命令窗口输入java -version,如果出现版本信息如图,说明Java环境变量已经配置好了。
3.1.2 Eclipse的安装
JDK安装成功后可以直接安装Eclipse。直接将资料里的eclipse文件拷到电脑上,执行其中的eclipse.exe文件进行安装,Eclipse可以自动找到用户前期安装的JDK路径。
3.1.3 安装ADT插件:
打开已安装好的Eclipse,选择菜单栏上的“Help”->在弹出的下拉框中单击选择“Install new software...”;
在新打开的对话框中我们完全可以直接在Work with中输入:https://dl-ssl.google.com/android/eclipse/
在线安装ADT插件,但由于Google的服务器搭建在国外,所以通过这种方式安装起来会比较慢,而且可能会出现人品差死活装不上的情况,所以不推荐在线安装。
我推荐直接通过下载好的ADT插件压缩包进行安装(此种方式可以在离线环境下进行)。具体步骤是:在新打开的对话框中点击Add按钮->在打开的对话框中点击Archive按钮选择之前已经下载好保存在本地硬盘的ADT插件压缩包,至于上面的Name可以随便取,这只是一个代号而已,没什么实际作用。
在上一步中点击Ok按钮后我们会发现中间的空白处出现了两行复选框,单击Select All按钮选中所有的复选框,这步过后一路Next,需要Accept的就选中Accept,直到点击Finish结束,这样ADT插件就安装好了。整个过程需要的时间视机器性能而定。安装好ADT插件后,Eclipse的工具栏会出现一排Android的图标,如图:
3.1.4 安装SDK
Android SDK目录介绍:
add-ons:Android开发需要的第三方文件
docs:Android的文档。包括开发指南、API等
extras:附件文档
platforms:一系列Android平台版本
platform-tools:开发工具,在平台更新时可能会更新
samples:例子
temp:缓存目录
tools:独立于Android平台的开发工具,这里的程序可能随时更新
把下载好的Android SDK安装到本机上(最好安装在全英文路径下),并为Android SDK配置环境变量。Android SDK的环境变量值为SDK安装目录下的platform-tools文件夹和tools文件夹子目录路径,如我的分别为:E:\360Downloads\adt-bundle-windows-x86-20131030\sdk\platform-tools、E:\360Downloads\adt-bundle-windows-x86-20131030\sdk\platforms,在变量值中,两个路径用逗号隔开。
打开命令提示符(cmd),分别输入android -h和adb命令,显示如下图则说明Android SDK环境变量已经配置好了。
打开Android SDK的安装目录,双击 SDK Manager,在打开的窗口中先选择你需要安装的SDK版本,其中Status表示该SDK包是否安装,如我选的是Android4.4(API 19)(我的之前已经安装过了,所以Status为Installed),再点击Install packages...按钮,在弹出来的窗口中最好选Accept All这样才能安装你刚才选的所有的包,最后点Install按钮就开始安装了,整个过程会很慢,这需要你的耐心。
另外我们还可以通过在Eclipse上的工具栏中点击下图指示的图标打开“SDK Manager”然后进行安装,这样和上面的SDK安装方式一样,就不累述了。
最后再选择Eclipes主菜单上的Windows选择preferrnces;
在弹出来的对话框中选中左边栏的Android->通过右侧的Browse...按钮选择SDK的安装路径根目录点击最下方的Ok按钮,这样SDK就在Eclipse上加载成功了。
3.1.5 创建Android模拟器(AVD)
打开Eclipse->在Eclipse的工具栏上单击下图指示的图标打开Android Virsual Device Manager窗口;
在Android Virsual Device Manager窗口单击New按钮,在弹出来的窗口中Name可以随便取;Target指模拟器的系统版本;SD Card的size是指手机存储卡的大小,只要你不在模拟器上装太多的应用,一般给个二三十MB就够了;Skin是指屏幕的分辨率大小。一切设置好后点击OK,这时一个模拟器就创建好了。如果有必要,我们可以创建多个模拟器用于测试时使用。
新创建一个设备,测试运行AVD,选中这个设备点击Start,这时会弹出设置屏幕参数,选中Scale display to real size,再点击Lanuch。
虚拟设备启动完成后会出现下图:
至此为止,在Eclipse上就已经成功搭建Android开发环境了,下面让我们看看如何新建第一个Android项目。
将Android项目导入Eclipse中:1、启动Eclipse,选择File--Import...菜单,展开General项,选择Existing Projects into Workspace导入项目到工作区;2、点击Next按钮,进入选择项目文件目录,选择好项目目录后,点击Finish按钮,等待导入完成即可,如果需要将项目文件一起拷贝到工作区,就需要选择Copy project into workspace复选框。
3.2 安装软件到模拟器
把apk的安装包放入\sdk\platform-tools目录下和adb.exe文件同目录,如图:
运行cmd,切换到adb.exe的目录
输入adb install testGame.apk
当命令行出现Success时代表安装成功
如图所示,安装失败,提示没有发现设备,是因为此时我没有打开安卓模拟器也没有连接开发板,需要将证书安装到设备上前提是有设备连接。当然我们在Eclipse中运行程序的时候Eclipse会先将证书安装到设备上,所以这一步也可以直接省略。
3.3 连接ARM实验箱与PC机
连接好串口线、电源线以及USB线
在Eclipse中点击项目运行之后会出现设备选择,上面是安卓模拟器,下面是开发板FS4412。
3.4 将工程代码在ARM实验箱上实现
3.5给程序增加新的功能
四、实验中遇到的问题及解决
问题一:windows下java jdk 环境变量设置
java jdk环境变量的配置:简单来说就是要设置path和classpath,path是要加上bin,classpath里面是lib。
我的电脑->属性->高级系统配置。
path系统里面都有了,只要在里面加上bin的地址就可以,每个路径之间用;隔开。
例如:C:\Program Files\Java\jdk1.6.0\bin
classpath要自己新建,当然如果已经有了,在里面编辑就可以,注意classpath前面要有.;代表当前路径。
例如:.;C:\Program Files\Java\jdk1.6.0\lib\dt.jar;C:\Program Files\Java\jdk1.6.0\lib\tools.jar
为了方便书写和以后的更改,可以设置java_home变量,将其设为C:\Program Files\Java\jdk1.6.0,这样path和classpath里面就可以用%java_home%来替换C:\Program Files\Java\jdk1.6.0
例如:path可设置为%java_home%\bin
问题二:Eclipse中的source not found change at.
解决办法:
需要把源码src.zip添加进去,源码src.zip一般放在java的jdk目录下面
问题三:ERROR: Application requires API version 10. Device API version is 8
解决方法:
修改两个配置文件:
在AndroidManifest.xml里, 找到这一行,这行是表示要执行这个应用程式所需要的最低版本,把数字改成模拟器上面的版本。(Device API)
在default.properties里 target=android-8 把target改为要运行模拟器的版本就OK了。(application requires API)
问题四:Adb启动失败
当我们通过eclipse开发Android应用时,安卓模拟器启动失败,提示这样的错误:ADB server didn’t ACK。
解决办法:
在cmd中输入:adb start-server启动adb服务。这个时候会提示启动失败。
在cmd中输入:adb nodaemon server查看是否是端口绑定失败。一般会输出:cannot bind‘tcp:5037’表示端口绑定失败。
在cmd中输入:netstat –ano | findstr “5037”查看哪个服务占用了这个端口。
进入任务管理器,关闭占用端口的进程。
再次启动服务,启动成功。
关闭Eclipse,重启,再次连接模拟器。
问题五:下载SDK时Google服务器被和谐
解决办法:
可以强制指向下Host,如下:
在C:\WINDOWS\system32\drivers\etc路径下找到hosts文件并打开
把“74.125.237.1dl-ssl.google.com”添加到最后一行保存并关闭
重新打开Android SDK Manager进行下载
问题六:Android模拟器报错emulator-5554 disconnected!
解决办法:有两种解决方案:
打开window -> Show Views -> device,点击“Devices”选项卡右上角的下拉箭头,选择“Reset adb”。
打开Windows命令行,切换到开发工具自带的adb.exe所在的目录,输入“adb kill-server”,回车,再输入“adb start-server”,回车。
五、实践过程中质疑记载:
这里面鱼是怎么移动的?
答:这里面是通过鱼的一个run()方法实现的,因为鱼的类继承了Thread类,所以只要将鱼的对象fish.start()便可以调用run()方法,而在该方法中,每过一段时间(这个时间很短,Thread.sleep(1000/20)),鱼的横左边就会减去它当前的速度,然后用repaint方法将鱼移动后的形态重画出来,鱼就移动了。
鱼的游动效果是怎样实现的?参考:捕鱼达人的鱼儿游泳动画
答:我们先将该一种鱼的每个游动形态的图片加载到一个BufferedImage的一个数组中,然后在鱼儿的run()方法中,鱼每次移动一次,就将鱼的图片换成数组中的一张图片,循环下去,鱼就游动了。
鱼是怎么被捕到的?参考:如何设计捕鱼达人游戏中的死亡概率?
答:鱼的图片是有大小的,而渔网我们看做是一个点,只要渔网的中心点在鱼图片的范围之内,且点击鼠标左键,鱼儿就会扣血,当然扣血量的大小按当前渔网的power值来扣。当鱼的血量小于零的时候,鱼就会捕到了,然后调用写好的getOut()方法将鱼送出来,还要将鱼的血量重新赋值,使鱼又可以进来鱼池中。
六、设计体会及收获
本次课程设计历时四周,我从对Java编程的不熟悉到深入了解,以及对ARM开发板的完全陌生到熟练连接运用,通过本次课程设计,让我亲身感受到了“纸上得来终觉浅”这句话的含义,可能听老师讲的时候都能听懂,等到自己操作的时候就总是眼高手低,不知如何下手,但最终我通过去图书馆查找相关资料以及在网上找相关问题的解决办法,最终解决了在开发过程中,从需求分析到功能实现的一些问题,完成了这个项目。
刚开始的时候遇到问题是一筹莫展,但是随着一个个问题的解决,我的能力也在慢慢提高。本来老师都让我放弃这个题目了,但是毕竟做了这么久,而且最后就面临一个问题,被解决的希望还是特别大的,所以我坚持了下去。终于功夫不负有心人,在各种查资料之后终于解决了这个大难题,使得游戏成功实现了,特别有成就感。本次课程设计从开始到结束都是自己一个人在做,所以我觉得能有最后的成功是对自己今后的学习生活最大的鼓励。
在开发过程中,我也查找了不少资料,从实际出发几次修改了需求分析,使最终开发出的游戏具有一定趣味性,并且基本实现需求。通过本次课设我意识到,我们对知识的学习,不能光停留在书本上,还要开拓眼界,主动学习,才能让自己跟得上时代的步伐。
参考资料:
对于基本的捕鱼游戏设计思路(一)——场景
对于基本的捕鱼游戏设计思路(二)——炮台
对于基本的捕鱼游戏设计思路(三)——炮弹
对于基本的捕鱼游戏设计思路(四)——序列帧动画
对于基本的捕鱼游戏设计思路(五)——鱼
对于基本的捕鱼游戏设计思路(六)——碰撞检测