999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于 Android 的“捕魚達人游戲”的開發

2015-05-30 13:59:59李湘一
智能計算機與應用 2015年6期

李湘一

摘 要:本文通過分析實際運行效果,闡述了捕魚達人游戲開發的體系結構,確定了游戲開發中需要創建哪些類,如何創建這些類。并對各實體類實現的功能進行了具體的描述。用線程實現了魚的游行,子彈的發射。最后給出了三種關鍵算法的描述,大炮旋轉角度的計算、子彈的運行軌跡的計算、判斷子彈是否擊中魚的算法描述。

關鍵詞: Android;捕魚達人;算法

中圖分類號:TP391 文獻標識號:A 文章編號:2095-2163(2015)06-

Abstract: Through the analysis of the actual operating results, this paper expounds the system structure of the game development of fishing up game, and determines what kind of game development need to create, and how to create these classes. After that, the function of each entity class is described in detail. The paper also uses threads to achieve the fish's parade, bullets fired. Three key algorithms are described,which respectively are the calculation of the rotation angle of the barrel, the calculation of the trajectory of the bullet, and judging whether the bullet hit the fish.

Keywords: Android; Fishing Talent; Algorithm

0引 言

近幾年來,Android憑借其開放性和靈活性成為時下熱門的移動終端操作系統之一。在Android平臺上進行游戲的開發,即已成為一個揮灑才智并極具魅力潛質的創意領域[1]。其中,手機游戲是Android平臺上眾多類型應用程序的一種,覆蓋面積大,傳播速度快。本文選取大眾較為熟知的捕魚達人游戲來進行詳細闡述該游戲開發的思路和具體步驟。

1捕魚達人游戲開發的體系結構

首先在eclipse中新建一個android項目名稱為fish,在src文件夾下新建com.tarena.fish包,捕魚達人游戲中用到的圖片素材全部拷貝到drawable目錄中。游戲最終顯示效果如圖1所示。

該游戲開發的體系結構如圖2所示。

2各實體類的功能實現描述

該游戲中有多條魚在池塘中游動,大炮將發射子彈進行擊中魚的作用過程,同時一并顯示擊中魚所得的分數。分析該游戲運行效果,則需要研發如下幾種主要實體類:

池塘類Pool、魚類Fish、大炮類Barrel、子彈類Bullet。

相對應地,研究中即在src文件夾下創建以上實體類Pool.java、Fish.java、Barrel.java、Bullet.java。其后,則給出各類重點實體的功能實現描述與闡析。

(1) Fish類實現的功能

確定魚的大小、魚的位置、魚的步伐、魚的十個動作,在魚的構造方法中,通過Random()函數來隨機產生魚每次游出的位置。魚類繼承了Thread類,如果魚被子彈擊中,讓魚重新游進來。如果魚重新游進來,魚的位置和步伐都隨之發生了改變;如果魚沒有被子彈擊中,就直線向前游,并在游的過程中通過循環語句依次完成自身的十個動作。十個動作完成后又將重新開始循環。如果魚已經游出了池塘,則讓魚再重新游進來。

(2) Barrel類實現的功能

確定Barrel的位置,Barrel的大小,在Barrel的構造方法中初始化這些參數值。

(3)Bullet類實現的功能

定義子彈的坐標、大小、子彈的角度、子彈的出發點,子彈運行軌跡的橫縱坐標,子彈是否存活(true表示子彈正常移動,false表示子彈已經擊中fish)。具體地,move()方法實現子彈移動的行為,hint()方法實現子彈擊中魚的方法。

(4)Pool類實現的功能

在Pool類中分別定義上述對象,并定義彈夾,用來存放子彈,定義捕魚的條數,創建fishes數組用來存放11條魚,使用循環向fishes數組中放入11條魚,并啟動魚的線程。

在onDraw()方法中將背景bg、所有的魚、大炮、積分板、子彈都畫出來。在onTouchEvent()方法中,鼠標彈起時,創建子彈,計算子彈的橫縱坐標,并使子彈的中心點和大炮的中心點一致。將子彈放入彈夾中,啟動子彈線程。

(5)MainActivity類實現的功能

在該類中創建一個池塘Pool對象,設置顯示的布局窗口,創建開始刷新界面的線程,定義一個內部類,通過調用onDraw()方法以實現不停地刷新Pool池塘中的內容變化。

3捕魚達人關鍵算法設計

3.1大炮旋轉角度的算法描述

大炮旋轉角度如圖3所示。

從圖3中,大炮中心點的坐標為(x,y),大炮左上角點的坐標為(barrel.x,barrel.y),鼠標點擊屏幕點的坐標為(mouseX,mouseY)。

大炮中心點的坐標計算如下:

int x=barrel.x+barrel.width/2;

int y=barrel.y+barrel.height/2;

其中,barrel.width和barrel.height分別表示大炮的寬度和高度。

double xx=(double)mouseY-y;//計算出的結果為負數

double yy=(double)mouseX-X;

用反余切來求出大炮的旋轉角度,f就是最后的角度。

f=Math.round(Math.toDegrees(-Math.atan(yy/xx)));

3.2子彈移動軌跡的算法描述

子彈運行軌跡如圖4所示。

圖4中,圓心坐標為(a,b),圓上任意一點的橫坐標x=a+Math.sin(弧度)*半徑,縱坐標y=b+Math.cos(弧度)*半徑。

具體算法如下:

int distance = p.y - y;// 求的半徑 ,其中p表示子彈的出發點

int x = Math.round((float) Math.sin(Math.toRadians(roate)) * distance);

xx = p.x + x;// 子彈運行軌跡的x坐標

int y = Math.round((float) Math.cos(Math.toRadians(roate)) * distance);

yy = p.y - Math.abs(yy);// 子彈運行軌跡的y坐標

}

}

3.3子彈擊中魚的算法描述

魚在池塘中游動,子彈發射的時候如何判斷魚被子彈擊中:如果子彈擊中了魚以后,彈夾中就會刪除這顆子彈,判斷魚是否存活的變量值則變為false。捕到魚的變量num加1。下面給出判斷魚是否被擊中的偽代碼。

for (int i = 0; i < 池塘中魚的數量; i++) {

if (子彈的橫坐標 >= 魚的左上角的頂點橫坐標 &&

子彈的橫坐標 < 魚左上角頂點 橫坐標+ 魚的寬度 &&

子彈的縱坐標 >=魚的左上角的頂點縱坐標&&

子彈的縱坐標 <= 魚的左上角頂點的縱坐標 + 魚的高度)

{

魚被擊中;

刪除彈夾中的這顆子彈;

isLive=false;

pool.num++;

} }

4結束語

本文介紹了基于Android系統捕魚達人游戲設計的總體流程,并詳細介紹了各個實體類實現的功能,在設計開發的同時,對游戲中用到的關鍵算法進行了詳細的闡述。但該游戲的模塊相對來說較為簡單,子彈擊中魚的范圍不夠精確等,有待在后期進行模塊的拓展和功能的完善。

參考文獻:

[1] 奚洋,郭健.基于Android的連連看游戲的算法研究[J].無線互聯科技, 2012(9):122.

[2] 劉毅.Android游戲開發課程教學改革與實踐[J].現代企業教育,2014,(16):379.

[3] 曲蘊慧. Android系統下手機游戲的設計與開發[J].電子科技,2013(6):94-95.

[4] 李嘉誠. Android應用程序開發研究與應用[J].軟件導刊,2014(13):64-67.

[5] 陳淮.基于Android游戲開發常用類庫的設計與研究[D].西安電子科技大學,2010.

[6] 李興華.Android開發實戰經典[M].北京:清華大學出版社, 2012.

主站蜘蛛池模板: 亚洲国产无码有码| 亚洲天堂日韩在线| 日本www在线视频| 香蕉eeww99国产在线观看| 亚洲另类国产欧美一区二区| 色妞www精品视频一级下载| P尤物久久99国产综合精品| 国产一区自拍视频| 国产又粗又爽视频| 精品视频一区在线观看| 久久青草精品一区二区三区| 久久精品无码中文字幕| 99中文字幕亚洲一区二区| 日本午夜在线视频| 综合久久五月天| 久久人搡人人玩人妻精品| 999国内精品久久免费视频| 亚洲一区二区无码视频| 一级毛片在线播放| 华人在线亚洲欧美精品| 97色伦色在线综合视频| 免费网站成人亚洲| 免费国产黄线在线观看| 在线观看亚洲成人| 啪啪永久免费av| 久久精品国产免费观看频道| 伊人成人在线视频| 在线观看网站国产| 亚洲天堂视频网站| 国产在线无码一区二区三区| 在线观看无码av五月花| 性喷潮久久久久久久久| 国产精品页| 亚洲第一成年网| 五月天福利视频| 99久久免费精品特色大片| 99爱在线| 一区二区三区成人| 国产成人在线无码免费视频| 亚洲美女AV免费一区| 浮力影院国产第一页| 理论片一区| 欧美高清国产| 国产丝袜一区二区三区视频免下载| 激情网址在线观看| 在线观看国产精品日本不卡网| av天堂最新版在线| 国产小视频在线高清播放 | 久久综合色天堂av| 欧美精品影院| 伊人色综合久久天天| 色噜噜综合网| 精品伊人久久久香线蕉| 国产在线精彩视频二区| 久久国产精品国产自线拍| 国产成人综合日韩精品无码不卡| 91年精品国产福利线观看久久| 91精品日韩人妻无码久久| 97精品久久久大香线焦| 视频一本大道香蕉久在线播放 | 九九热这里只有国产精品| 久久先锋资源| 欧美.成人.综合在线| 亚洲成AV人手机在线观看网站| 欧美中文字幕第一页线路一| 国产成人在线无码免费视频| 日韩在线2020专区| 乱人伦视频中文字幕在线| 精品一區二區久久久久久久網站 | 人妻无码一区二区视频| 激情综合网址| 日本免费一级视频| 全部免费毛片免费播放| 东京热高清无码精品| 999福利激情视频| 四虎国产精品永久一区| 国产视频欧美| 欧美日韩在线成人| 久久国产成人精品国产成人亚洲| 91亚瑟视频| 久久精品国产国语对白| 永久免费av网站可以直接看的|