参与课设题目讨论及部分过程html
资料收集java
负责代码调试android
捕鱼游戏相应功能的实现windows
Windows环境下ARM集成开发环境的搭建与使用oracle
安装JDK和配置Java开发环境app
下载网站:http://www.oracle.com/eclipse
开始安装JDK:fetch
修改安装目录以下:网站
肯定以后,单击“下一步”。操作系统
注:当提示安装JRE时,能够选择不要安装。
对于Java程序开发而言,主要会使用JDK的两个命令:javac.exe、java.exe。路径:C:\Java\jdk 1.7.0 _09\bin。可是这些命令因为不属于windows本身的命令,因此要想使用,就须要进行路径配置。
单击“计算机-属性-高级系统设置”,单击“环境变量”。在“系统变量”栏下单击“新建”,建立新的系统环境变量。
(1)新建->变量名"JAVA_HOME",变量值"C:\Java\jdk1.8.0_05"(即JDK的安装路径)
(2)编辑->变量名"Path",在原变量值的最后面加上“;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin”
(3)新建->变量名“CLASSPATH”,变量值“.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar”
在控制台分别输入java,javac,java -version 命令,出现以下所示的JDK的编译器信息,包括修改命令的语法和参数选项等信息。
java命令:
javac命令:
java -version命令:
public class Test { public static void main(String[] args) { System.out.println("Hello Java"); } }
用记事本编写好,点击“保存”,并存入C盘根目录后,输入javac Test.java和java Test命令,便可运行程序(打印出结果“Hello Java”)。注:这两个命令是在D:\java\jdk1.8.0_20\bin目录下。
首先编写java源代码程序,扩展名.java;
在命令行模式中,输入命令:javac 源文件名.java,对源代码进行编译,生成class字节码文件;
编译完成后,若是没有报错信息,输入命令:java HelloWorld,对class字节码文件进行解释运行,执行时不须要添加.class扩展名。见下图:
http://www.androiddevtools.cn/
找到SDK Tools,选择下载windows的zip格式的。
下载后在须要安装的位置解压,获得:
而后install
右键个人电脑,打开属性,点击高级系统设置,打开环境变量:
一、新建一个环境变量名称为ANDROID_HOME,变量值为当前安装SDK的目录
例如SDK装在D:\androidSDK中,则环境变量为:
二、把%ANDROID_SDK_HOME%\platform-tools;%ANDROID_SDK_HOME%\tools添加到Path环境变量中。
win+R,输入cmd,打开命令提示符面板。
一、输入android
二、输入abd
1.javac不是内部或外部命令,也不是可运行的程序或批处理文件。
缘由是由于没有提早安装好JDK开发环境或环境变量配置有误。
2.在增长捕鱼功能时,遇到的问题
对几率进行调整,收入太高时下降几率,收入太低时提升几率,则对几率进行调整,增长实时调整参数AP(-10%<AP<10%):
则击杀几率调整为:
当收入太高,下降AP,下降鱼击杀率,形成玩家纯收入锐减。
当收入太低,提升AP,提升玩家收入,避免玩家流失。
游戏初期,提升AP,提升金币产出,增长玩家收入,强化爽快感,吸引玩家持续游戏。
游戏中期,适度调高和调低AP,形成收入波峰波谷(相似股票),吸引玩家充值,同时提升游戏黏度。
游戏后期,下降AP,提升玩家冲击高分的难度,强化玩家以前的比拼,吸引玩家充值,提升收入。
倍数:玩家可选择倍数,提升子弹的消耗N倍,击杀鱼后得到的金币量N倍。
例如,1倍下,豌豆消耗1金币,杀死鱼得到10金币。10倍下,子弹消耗10金币,杀死鱼得到100金币。
倍数设置值为1倍、2倍、5倍、10倍、20倍、50倍、100倍。
玩家开启某个倍数,受其等级限制、房间上限倍数限制。
咱们将房间分为初级、中级、高级三种房间。根据其房间的定位,调整在该房间内,玩家击杀僵尸的几率:
初级房:只能使用低倍数,提升击杀几率,随便打打就能够赢钱。
中级房:能够调整高低倍数,平衡击杀几率,掌握技巧可基本收支平衡。
高级房:能够开启最高倍数,略微下降击杀几率,赚得多赔得多。
加入房间参数RP后,击杀几率公式被调整为
捕鱼类游戏计算方式的设计思路
建议初级房的RP为+10%,中间房为0,高级房为-8%(数值可配置,具体数据以实际调整后为准)。
1.领头鱼
首先要设计一个对鱼类来讲一个必须的类--领头鱼类~HeadFish~,这个类并非实质的鱼,而是一个点,这个点带领着全部鱼群游动。该类决定了鱼群的~X~,~Y~坐标,~游动方向~,~旋转角度~和~旋转方向~。
public class HeadFish { private int[] fishOutlinePoint = new int[4]; //鱼的外接矩形,x的最小值,最大值,Y的最小值,最大值 //控制鱼移动的线程 private FishRunThread fishRunThread; private boolean isNew = true; //是否刚生成的鱼 这个参数决定着进入屏幕时候的路线 private float fish_x; //鱼当前的X坐标 private float fish_y; //鱼当前的Y坐标 private int currentRotate; //鱼当前已旋转的角度 private float lastX; //最后一次旋转后的X增量 这组XY的做用是旋转后若走直线,就以这两个值 private float lastY; //最后一次旋转后的Y增量 递增就能够了 private int rotateDirection; //左转仍是右转 这个值的用途在于,鱼在旋转后走直线时,要计算最后一次旋转后的增量,而这个记录了上次是左转仍是右转用于计算角度得知直线时的增量 //当前鱼群的鱼,鱼群的鱼都已它为参照,一样这个鱼也在鱼群集合里 private Fish fish; //鱼群 private ArrayList<Fish> shoal = new ArrayList<Fish>(); //当前建立的领头鱼的起始位置 private int currentFromPoint;
且生成~get~、~set~方法,为后面的方法调用赋值作准备。
在类~ShoalManager~中有一个生成领头鱼的方法:~birthHeadFish~。该方法能够建立一头领头鱼,领头鱼的出现也就使得鱼群得以出现,建立完成以后,将方向设置到类属性~currentFromPoint~上,供鱼群使用。
2.丰富多彩的鱼类
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <key>fishActConfig</key> <string>fish/fish;fish/fish2;fish/fish3;fish/seamaid</string> <key>fishInfoConfig</key> <string>fish/FishInfo</string> </plist>
initFishInfo
方法初始化了鱼的配置信息,如鱼的图层ID,鱼的动做速度,鱼的价值,鱼的捕捉几率等,关键代码以下:
private void initFishInfo(String config){ try{ //若是配置信息没有找到,抛出异常 if(config==null){ throw new Exception("FishManager:读取配置文件出错,没有找到fishInfoConfig信息"); } //加载鱼的基本信息配置文件 XmlPullParser xml = XmlManager.getXmlParser(config, "UTF-8"); //解析全部的鱼的基本信息 while(GamingInfo.getGamingInfo().isGaming()&&XmlManager.gotoTagByTagName(xml, "key")){ XmlManager.gotoTagByTagName(xml, "string"); String fishName = XmlManager.getValueByCurrentTag(xml); FishInfo fishInfo = new FishInfo(); //设置最大旋转角度 XmlManager.gotoTagByTagName(xml, "integer"); fishInfo.setMaxRotate(Integer.parseInt(XmlManager.getValueByCurrentTag(xml))); //设置移动速度 XmlManager.gotoTagByTagName(xml, "integer"); fishInfo.setFishRunSpeed(Integer.parseInt(XmlManager.getValueByCurrentTag(xml))); //设置动做速度 XmlManager.gotoTagByTagName(xml, "integer"); fishInfo.setActSpeed(Integer.parseInt(XmlManager.getValueByCurrentTag(xml))); //设置鱼群最大数量 XmlManager.gotoTagByTagName(xml, "integer"); fishInfo.setFishShoalMax(Integer.parseInt(XmlManager.getValueByCurrentTag(xml))); //设置鱼的图层ID XmlManager.gotoTagByTagName(xml, "integer"); fishInfo.setFishInLayer(Integer.parseInt(XmlManager.getValueByCurrentTag(xml))); //设置鱼的价值 XmlManager.gotoTagByTagName(xml, "integer"); fishInfo.setWorth(Integer.parseInt(XmlManager.getValueByCurrentTag(xml))); //设置鱼的捕捉几率 XmlManager.gotoTagByTagName(xml, "integer"); fishInfo.setCatchProbability(Integer.parseInt(XmlManager.getValueByCurrentTag(xml))) allFishConfig.put(fishName, fishInfo); } }catch(Exception e){ e.printStackTrace(); } }
3.Eclipse中的source not found change at.
须要把源码src.zip添加进去,源码src.zip通常放在java的jdk目录下面
4.Adb启动失败
当咱们经过eclipse开发Android应用时,安卓模拟器启动失败,提示这样的错误:ADB server didn’t ACK。
5.解决Android SDK Manager的Download interrupted: URL not found问题
选中“Force https : sources to be fetched using http:”复选框。设置完成后单击 Close 按钮关闭 Android SDK Manager - Settings 窗口返回到主界面,再依次选择 Packages、Reload。
本次设计在同组小伙伴的共同努力和老师的悉心指导下顺利完成。咱们小组的课题是基于ARM实验箱实现捕鱼游戏,最主要的部分就是环境配置以及对实验代码的理解。课题的重点和难点在于ARM实验箱的操做,首先须要将PC机与ARM实验箱链接,才能将工程成功的在ARM实验箱上运行显示以及执行相应的操做。我主要是负责的代码部分,其中包括捕鱼游戏相应功能的实现,其中在倍数、实时调整、房间几率调整部分有了新的理解。虽然本次设计有必定的困难,可是不能由于困难就放弃,经过不一样的方法去解决问题才是最终的目的,也是我以为最重要的东西。
http://www.javashuo.com/article/p-byneznyf-cb.html
https://blog.csdn.net/zeternityyt/article/details/79655150
https://blog.csdn.net/mergerly/article/details/71505123