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

基于Android的“瘋狂投籃”游戲開發

2018-12-22 00:04:12何向文
無線互聯科技 2018年9期
關鍵詞:按鈕界面游戲

何向文

(湖南科技學院 電子與信息工程學院,湖南 永州 425199)

街頭籃球機是一項源于美國流行世界的現代體育競枝項目,屬于街頭籃球文化的一部分,是一項適合全民健身、老少皆宜的具有較強競技性、趣味性的運動新項目。投籃機是把籃球運動中的投籃動作獨立出來,設計成一種專門用于投籃的練習設備。其種類很多,有“兒童籃球機”“雙人籃球機”和“單人籃球機”等。由于其時尚的外形和動感的音樂效果,很快就流行到了世界各地。

1 游戲的功能概述

“瘋狂投籃”游戲的操作很簡單,只需用手指輕觸屏幕上的籃球并將其甩出,通過控制甩的力度和方向來調整球的速度和球的走向,進行投籃,在規定時間內得盡可能多的分數即可。該游戲的運行步驟如下。

(1)啟動游戲后首先進入的是公司圖標界面。(2)自動進入游戲聲音設置界面,單擊“是”鏈接,則開啟游戲聲音;單擊“否”鏈接,則關閉游戲聲音。(3)聲音設置完畢后,自動切換到游戲開始菜單界面,該界面共有4個菜單,分別是開始游戲、幫助、關于及退出。(4)在開始菜單界面若單擊“幫助”按鈕,則進入游戲幫助界面,該界面介紹了本游戲的游戲規則和游戲控制方法。(5)在開始菜單界面若單擊“關于”按鈕,則進入游戲關于界面,該界面介紹了關于本游戲的相關信息。(6)在開始菜單界面若單擊“退出”按鈕,則退出游戲。(7)在開始菜單界面若單擊“開始游戲”按鈕,則首先切換到游戲加載畫面,加載游戲,由此開始“瘋狂投籃”游戲之旅。(8)游戲加載成功后,則進入游戲界面。一開始,屏幕下方有3個籃球,靜止于地板,屏幕左上方的數字用來記錄玩家得分,右上方的數字表示倒計時的時間。玩家可以通過手指甩動籃球進行投籃。(9)游戲中,一旦玩家投出去了球,則開始倒計時。(10)游戲中,如果玩家投出去的球進了籃筐,則相應地增加玩家得分。(11)游戲中,如果玩家投出去的球沒有進入籃筐,則不增加玩家得分。(12)游戲中,玩家投出去的球落到地面后便自動回滾到屏幕下方。(13)游戲中,如果倒計時到0,則此輪游戲結束,進入游戲結束界面。游戲的功能闡述完畢。本游戲只有一種快速游戲模式,后續開發中可自行添加如限分模式、劇情模式等,以增加游戲難度,提高游戲的可玩性。

2 游戲的設計與實現

2.1 游戲的策劃

現代社會人們工作日益繁忙,通過參加體育活動來放松的時間越來越少。因此,“瘋狂投籃”作為一款體育類游戲,模擬了現實世界的體育活動,只要帶著手機,玩家便可以隨時隨地進入虛擬體育世界,享受體育帶來的樂趣,滿足玩家對體育娛樂性的要求。

“瘋狂投籃”的可玩性強,需要玩家在規定時間內得盡可能多的分數。游戲過程中玩家不僅需要控制投籃的方向,還要恰到好處地掌握好投籃的力度,只有協調好這兩個因素,才能將球順利投進籃筐,這也是游戲的魅力所在[1]。

如果程序中需要對圖片進行不等比例的拉伸時,可使用Android sdk安裝目錄下tools文件夾中的draw9patch工具對圖片進行處理,以達到更好的拉伸效果。

2.2 游戲的架構

2.2.1 游戲中用到的主要技術

程序中聲音設置界面、開始菜單、幫助界面、關于界面、加載界面及結束界面均用2D技術實現。以上界面均繼承和擴展自SurfaceView并重寫了其中的onDraw方法,所有的按鈕均為筆者用貼圖實現,避免了使用Android的自帶控件,使游戲畫面更加絢麗、個性。

游戲時的界面使用3D技術實現,游戲界面繼承和擴展了GLSurfaceView并實現了Renderer接口,通過重寫onTouchEvent方法實現與用戶的交互。

本游戲開發中使用的碰撞檢測是一大難點,運用到了數學中的向量知識和相關的物理知識。實際商業化游戲開發中,往往使用的碰撞檢測算法更效率、更準確、更成熟。而這些算法都是由數學家研究的。

2.2.2 游戲的框架與游戲界面類的設計與實現

(1)啟動游戲后,首先在BasketballActivity中初始化,閃過界面。(2)在BasketbalLActivity中初始化SoundView,將用戶界面切換到聲音設置界面。(3)設置完游戲聲音后,SoundsView通過重寫其onTouchEvent方法,向BasketbaIIActivity中的消息管理器發送消息,初始化MenuView,并通過調用MenuThread線程繪制開始菜單界面,將界面切換至開始菜單界面。(4)在開始菜單界面MenuView中,單擊不同的按鈕,將向BasketballActivity中的消息管理器發送不同的消息,進入不同界面。如單擊“幫助”按鈕,則向消息管理器發送消息,進入幫助界面。(5)當單擊“開始游戲”按鈕時,先向消息管理器發送消息,初始化LoadView,將開始菜單切換至游戲加載界面。(6)在加載界面加載動畫完成時,向消息管理器發送消息,初始化GLGameView,進入游戲界面。首先GLGameView會初始化背景類、球類等場景類來繪制場景。同時將啟動線程BallGoThread來改變球運動的位置及其狀態,刷新游戲界面,進行動畫的繪制,同時通過調用CollisionUtil類來進行碰撞檢測。(7)游戲界面類需要初始化的類為:BackWall,LeftWall,RightWall,Floor,Roof,Board,Ring,Cylinder,Assemble,Panel,Score,Deadtime,BallForDraw,LogicalBall,BallGoThread。(8)在MenuView中一旦單擊“開始游戲”按鈕則啟動線程DeadTimeThread來實時判斷倒計時是否到零。如果到零則向消息管理器發送消息,初始化OveView,進入結束界面。(9)在結束界面,如果觸摸屏幕的“再玩一次”字樣,則向消息管理器發送消息,將結束界面切換到開始菜單界面。

本游戲中的界面有很多,包括游戲主菜單、幫助界面、關于界面、加載界面及結束界面。但實現方式類似,均繼承了SurfaceView。

游戲開始菜單是游戲的一個重要界面,當一開始進入游戲,設置完音樂后就會進入這個界面,而游戲勝利后,依然回到該界面。開始菜單MenuView類是本程序最主要的類之一,其實現比較復雜。

本游戲為3D游戲,游戲界面繼承了GLSurfaceView,游戲界面的主要作用是組裝各個已經實現了的部件,并進行游戲結束的判斷。

2.3 游戲界面中主要場景的繪制及籃球運動

本游戲場景由較多部件組成,由于篇幅有限,筆者在這里只給出較為典型的部件的繪制。游戲中的墻壁、地板、屋頂、儀表板和計分均采用矩形貼紋理的方式實現,即繪制一個矩形,然后對其貼背景或者地板的紋理,然后進行平移和旋轉,把背景和地板放置到游戲界面合適的位置。

籃板的實質是一個正六面體,其正面貼有籃板的紋理。正六面體的中心點與其坐標原點重合,這樣在以后調用時會很方便。真實籃板的整體繪制需要非常復雜的數學模型,包括圓環、圓柱和六面立方體。用圓環知識構造籃環,用圓柱知識構造籃筐支架,用六面立方體的知識構建籃板。

由于倒計時的紋理是采用分割位圖來獲得的,并且倒計時的變化是通過特定的DeadtimeThread.java來控制的。

為了實現真實的籃球運動效果,本游戲中籃球的運動拋物線完全模擬現實中的籃球運動的拋物線軌跡[2]。

2.4 籃球與籃筐的碰撞檢測

進行籃球與籃筐的碰撞檢測的最終目的是為了判斷籃球是否投進籃筐,編寫CollisionUtil.java主要考慮的是籃球與籃筐碰撞的情況,即已知籃球碰撞前的速度、籃球撞擊時的位置、籃球撞擊時的撞擊點,得出籃球撞擊后的反彈速度。思路如下:(1)求籃球碰撞后的反彈速度。(2)求籃球的撞擊點。

在整個游戲當中,籃球不僅會和籃筐發生碰撞,還會與墻壁、地板和屋頂發生碰撞,所以同樣要對其進行碰撞檢測。由于將速度分成了沿XYZ軸的分速度Vx,Vy,Vz,所以每次碰撞時,只是垂直于碰撞面的分速度的方向變成它的相反方向,其余分速度方向不變。

2.5 手機屏幕拾取技術

在2D游戲中,觸屏游戲的物體拾取只需判斷所觸屏幕點的坐標與所要拾取的物體所在點的坐標(物體投影到屏幕上的坐標)的關系,如果所觸點坐標在物體所在坐標范圍內表示拾取到物體,則可以進行下一步操作,反之則不執行拾取操作。

在3D游戲中,同樣要判斷所觸屏幕點的坐標與所要拾取的物體所在點坐標的關系,但所要考慮的就不光是屏幕觸控點的問題了。3D物體處于三維立體空間中,不同物體不一定處于同一平面,這時候就要從手指所觸屏幕點對應的3D空間中的點沿目光方向向遠處發出一條射線,第1個與射線相交的物體即是要拾取的物體[3]。

3 游戲的優化與改進

在玩家眼中,好的游戲總會是有聲有色、豐富多彩的,離開了生動的音效,游戲的體驗就會大打折扣,所以對音效的處理是游戲開發中必不可少的。本游戲中,對音效的處理并不夠完善,有能力的玩家可以在適當的地方添加上音效,以提升玩家的體驗感。

[參考文獻]

[1]吳亞峰.Android3D游戲開發技術詳解與典型案例[M].北京:電子工業出版社,2012.

[2]吳志霞.基于Android平臺的“戰斗士”游戲軟件案例設計及實現[J].九江學院學報,2016(1):67-69.

[3]弋改珍,趙丹.基于Android平臺的飛機游戲的設計與開發[J].計算機技術與發展,2016(7):183-186.

猜你喜歡
按鈕界面游戲
這些按鈕能隨便按嗎?
當你面前有個按鈕
國企黨委前置研究的“四個界面”
當代陜西(2020年13期)2020-08-24 08:22:02
基于FANUC PICTURE的虛擬軸坐標顯示界面開發方法研究
人機交互界面發展趨勢研究
數獨游戲
瘋狂的游戲
飛碟探索(2016年11期)2016-11-14 19:34:47
爆笑游戲
第八章直接逃出游戲
小學科學(2015年7期)2015-07-29 22:29:00
手機界面中圖形符號的發展趨向
新聞傳播(2015年11期)2015-07-18 11:15:04
主站蜘蛛池模板: 91亚瑟视频| 成年A级毛片| 91热爆在线| 久久一色本道亚洲| 国产特一级毛片| 欧美亚洲欧美| 99这里只有精品在线| 色综合天天娱乐综合网| 亚洲第一成年人网站| 伊人久久婷婷五月综合97色| 免费人成网站在线观看欧美| 天堂中文在线资源| 91精品福利自产拍在线观看| 久久99久久无码毛片一区二区 | 青青热久免费精品视频6| 欧美精品v| 91网址在线播放| 色婷婷国产精品视频| 国产综合欧美| 国产精品流白浆在线观看| 四虎精品免费久久| 欧美成人免费一区在线播放| 色天堂无毒不卡| 成人噜噜噜视频在线观看| 欧美日韩精品在线播放| 午夜国产小视频| 亚洲成人网在线播放| 国产日本欧美亚洲精品视| 中文字幕日韩视频欧美一区| 露脸一二三区国语对白| 九九视频免费在线观看| 亚洲精品无码抽插日韩| 欧美成人一区午夜福利在线| 国产精品久久久免费视频| 国产午夜精品鲁丝片| aa级毛片毛片免费观看久| 国产精品女熟高潮视频| 日韩欧美高清视频| 久久精品电影| 新SSS无码手机在线观看| 亚洲欧美日韩动漫| 一级毛片视频免费| 日韩高清中文字幕| 日韩东京热无码人妻| 国产精品永久不卡免费视频| 波多野结衣久久高清免费| 国产91导航| 久久综合五月婷婷| 在线观看无码a∨| 国产成年女人特黄特色大片免费| 香蕉久久国产超碰青草| 国产av剧情无码精品色午夜| 一级黄色欧美| 无码专区第一页| 国产簧片免费在线播放| 成人午夜视频免费看欧美| 欧美亚洲国产一区| 日韩高清一区 | 国产肉感大码AV无码| 国产在线一二三区| 国产91色在线| 日韩在线影院| 亚洲综合二区| 老司机aⅴ在线精品导航| 亚洲精品天堂自在久久77| 国产产在线精品亚洲aavv| 精品无码视频在线观看| 精品国产一区二区三区在线观看 | 青青草国产免费国产| 欧洲高清无码在线| 美女国产在线| 老熟妇喷水一区二区三区| 尤物精品国产福利网站| 亚洲一区第一页| 在线视频一区二区三区不卡| 国内精自线i品一区202| 国产欧美精品一区二区| 欧美不卡视频一区发布| 在线va视频| 国产91透明丝袜美腿在线| 先锋资源久久| 国产精品久久自在自线观看|