參與課設題目討論及部分過程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