亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        搶灘登陸射擊類游戲的開發(fā)

        2018-12-23 19:54:31謝云山
        無線互聯(lián)科技 2018年7期
        關(guān)鍵詞:開始菜單碰撞檢測炮彈

        謝云山

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

        1 移動通信和互聯(lián)網(wǎng)融合背景

        最近幾年,移動通信和互聯(lián)網(wǎng)成為當(dāng)今世界發(fā)展最快、市場潛力最大、前景最誘人的兩大業(yè)務(wù)。它們的增長速度是任何預(yù)測家都未曾預(yù)料到的。迄今,全球移動用戶已超過15億,互聯(lián)網(wǎng)用戶也已逾7億,中國移動通信用戶總數(shù)超過3.6億,互聯(lián)網(wǎng)用戶總數(shù)則超過1億。移動互聯(lián)網(wǎng)正逐漸滲透到人們生活、工作的各個領(lǐng)域。據(jù)ComScore對蘋果應(yīng)用軟件店(Apple APP Store)一份全面的研究報告中顯示,人們在iPhone和iPod touch上使用最多的軟件是游戲。其中,游戲軟件中70%~75%為3D游戲軟件。

        2 功能簡介

        20世紀(jì)60年代,戰(zhàn)爭的硝煙在整個歐洲大陸上彌漫,盟軍在大陸上的作戰(zhàn)陷入了焦灼狀態(tài)。為了牽制敵軍的行動并最終取得決定性的勝利,玩家的使命就是:盡最大可能消耗敵人的入侵部隊,阻止敵人的進(jìn)攻。面對灘頭上潮水一般涌來的敵人,唯一能依靠的就只有身后那門威力無比強(qiáng)大的海防炮臺。

        搶灘登錄游戲的操作很簡單,運(yùn)用上下左右鍵調(diào)整大炮的方位和角度,瞄準(zhǔn)敵方坦克,按下空格鍵就可以發(fā)射炮彈來打擊敵軍。啟動游戲后首先進(jìn)入的是游戲的圖標(biāo)灰度漸變界面;之后自動進(jìn)入到Logo灰度漸變界面;然后自動進(jìn)入游戲聲音設(shè)置界面,單擊“是”,則開啟游戲聲音;單擊“否”,則關(guān)閉游戲聲音;聲音設(shè)置完畢后,自動切換到游戲開始菜單界面;單擊“游戲幫助”,則進(jìn)入游戲幫助界面;單擊“關(guān)于游戲”,則進(jìn)入游戲關(guān)于界面;單擊“游戲退出”,則退出游戲;當(dāng)游戲結(jié)束后,則進(jìn)入游戲結(jié)束界面;當(dāng)進(jìn)入游戲時,會有視角旋轉(zhuǎn)來讓玩家瀏覽場景;接著旋轉(zhuǎn)視角,場景中還有堅固的炮臺和威武的大炮,在鎮(zhèn)守著海濱要塞;游戲中水上坦克將會逐漸駛向陸地,當(dāng)其登錄后,則會由陸地坦克進(jìn)行登陸作戰(zhàn);進(jìn)行游戲時玩家可以用上下左右鍵來控制大炮的轟擊方向和位置,按下空格鍵發(fā)射炮彈;如果玩家轟擊陸地,則播放爆炸效果動畫;若玩家發(fā)射炮彈擊中陸地坦克,則播放爆炸效果動畫并擊毀坦克,同時會有新的敵軍來進(jìn)攻,并且游戲左上角擊中坦克計數(shù)加1;若玩家發(fā)射炮彈擊中水上坦克,則播放爆炸效果動畫并擊毀坦克;如果玩家轟擊水面,則播放爆炸效果動畫。

        3 游戲的策劃

        隨著網(wǎng)絡(luò)的不斷發(fā)展,戰(zhàn)爭類游戲越來越受到玩家的喜愛,可以單機(jī)對戰(zhàn),可以聯(lián)網(wǎng)對戰(zhàn),驚險刺激,驚心動魄?!稉尀┑顷憽纷鳛橐豢顟?zhàn)爭類射擊游戲,模擬了登陸戰(zhàn)爭中激烈的戰(zhàn)爭場面。只要帶著手機(jī),玩家便可以隨時隨地進(jìn)入虛擬戰(zhàn)爭世界,享受轟擊敵軍帶來的游戲快感,滿足玩家對游戲娛樂性的要求。

        4 游戲的架構(gòu)

        4.1 游戲中用到的主要技術(shù)

        程序中的公司界面、Logo界面、開始菜單界面、聲音設(shè)置界面、幫助界面、關(guān)于界面及結(jié)束界面均用2D技術(shù)實(shí)現(xiàn)。以上界面大部分繼承和擴(kuò)展自SurfacView并重寫了其中的onDraw方法,并且所有的按鈕均是筆者用貼圖實(shí)現(xiàn)的,避免了使用Android自帶控件,使游戲畫面更加絢麗、個性。

        游戲時的界面使用3D技術(shù)實(shí)現(xiàn),游戲界面繼承和擴(kuò)展了GLSurfaceView并實(shí)現(xiàn)了Renderer接口,通過重寫onKeyDown方法實(shí)現(xiàn)與用戶的交互。

        4.2 游戲菜單界面的框架合計

        游戲開始菜單是游戲的一個重要界面,當(dāng)一開始進(jìn)入游戲設(shè)置完音樂后,就會進(jìn)入這個界面。下面闡述一種橫屏模式下帶有滾動效果的菜單界面。開始菜單SurfaceViewMenu.java類是本設(shè)計最主要的類之一,其實(shí)現(xiàn)比較復(fù)雜。

        (1)onDraw繪制方法,用于繪制位圖。

        @Override

        public void onDraw(Canvas canvas){……}

        (2)初始化菜單的方法,初始化當(dāng)前及靠其左右的菜單項的位置大小參數(shù)。

        public void initMenu(){……}

        4.3 游戲菜單界面的實(shí)現(xiàn)

        游戲菜單界面的實(shí)現(xiàn),難點(diǎn)在ThreadMenu.java方法。該方法是用于控制菜單拖動的動畫效果的線程,在特定的時間間隔后就會調(diào)用一次repaint方法對菜單界面進(jìn)行重繪。Repaint方法的主要作用是重繪,其中調(diào)用了onDraw方法。

        4.4 游戲界面中主要場景的繪制及實(shí)物運(yùn)動

        游戲中山地、海洋、坦克、大炮、炮彈、炮臺、月球、星空及燈塔的創(chuàng)建基礎(chǔ)均是根據(jù)圓面、圓柱體、圓錐體、長方體、球體中的一個或者幾個拼接而成的。關(guān)于地圖的生成,水面的實(shí)現(xiàn)方法,是分別運(yùn)用了山地生成技術(shù)和飄揚(yáng)的旗幟技術(shù)來完成實(shí)現(xiàn)的。山地生成中為了使場景更加真實(shí),在生成山地時做了一定的改動。對于場景中的拼裝物體,如大炮、坦克、炮臺和燈塔,實(shí)現(xiàn)方法都比較相似。

        關(guān)于在場景中物體的運(yùn)動,包括水上坦克的運(yùn)動、陸地坦克的運(yùn)動,以及炮彈的運(yùn)動,還有光源的旋轉(zhuǎn)、攝像機(jī)的旋轉(zhuǎn)、月球的旋轉(zhuǎn),以及星空的旋轉(zhuǎn)。由于物體的運(yùn)動實(shí)現(xiàn)是有些相似的,所以,我們以炮彈的運(yùn)動和月球的旋轉(zhuǎn)運(yùn)動為例來闡述物體運(yùn)動的實(shí)現(xiàn)。

        在實(shí)現(xiàn)炮彈的運(yùn)動中,因?yàn)榕趶椡粫r間存在的數(shù)量可以很多,所以將場景中存在的炮彈放在一個炮彈列表中,當(dāng)需要繪制場景時從列表中逐個掃描炮彈,并用一個邏輯類LogicalBullet.java來控制當(dāng)前掃描到的炮彈的位置、速度的大小和方向并檢測是否發(fā)生碰撞,若碰撞則發(fā)生爆炸并播放爆炸動畫,若沒有碰撞則引用DrawBall實(shí)例來繪制炮彈。

        4.5 各類的設(shè)計

        4.5.1 公共類

        主類Activity_GL_Demo.java通過繼承和擴(kuò)展基類Activity來實(shí)現(xiàn)的,是整個應(yīng)用程序的入口。主要根據(jù)收到的Handler消息的不同切換到不同的界面,并且控制聲音播放和場景渲染的暫停和恢復(fù)。常量Constant.java類記錄程序中所有類需要用到的常量,便于以后的修改。

        4.5.2 2D界面類

        圖標(biāo)漸變界面 Surfac洳ewTag.java類,該類用于公司圖標(biāo)等的漸變實(shí)現(xiàn)。聲音設(shè)置界面SurfaceViewSound.java類,該類是聲音設(shè)置界面的實(shí)現(xiàn)類,主要負(fù)責(zé)聲音設(shè)置界面的繪制,控制游戲中聲音的開關(guān)。開始菜單界面SurfaceViewMenu.java類,這個類是開始菜單界面的實(shí)現(xiàn)類,實(shí)現(xiàn)開始菜單界面的繪制,是連接整個程序中各類的一個集中地,能根據(jù)單擊不同的菜單向Activity_GL_Demo.java發(fā)送不同的Handler消息。幫助界面SurfaceViewHelp.java類,游戲幫助界面由這個類實(shí)現(xiàn),用來繪制游戲幫助界面,以顯示游戲的規(guī)則、操作等信息。關(guān)于界面SurfaceViewAbout.java類,該類是游戲關(guān)于界面的實(shí)現(xiàn)類,主要負(fù)責(zé)游戲關(guān)于界面的繪制,顯示游戲相關(guān)信息。游戲結(jié)束界面SurfaceViewOver.java類,該類是游戲結(jié)束界面的實(shí)現(xiàn)類,繪制游戲結(jié)束界面,顯示玩家的得分情況和提供再玩一次的功能。

        5 游戲中的碰撞檢測

        運(yùn)用高等數(shù)學(xué)中的向量理論,運(yùn)用向量知識解決場景中的碰撞問題,主要包括炮彈與山地的碰撞,陸地坦克與山地的碰撞,陸地坦克與海面的碰撞,以及水上坦克與陸地的碰撞。進(jìn)行炮彈與山地碰撞檢測的最終目的是為了判斷炮彈在何時爆炸,已知炮彈的實(shí)時位置和速度。思路如下。矩形為陸地平面上的一個網(wǎng)格,因?yàn)檎麄€地圖都是由類似的這些生成三角形拼接而成的,只是陸地平面中的網(wǎng)格是按像素來劃分的,人眼很難辨別,所以看上去像是真實(shí)的山地地圖場景,所以在此我們將以拼接三角形來闡述炮彈的碰撞檢測。

        對于炮彈碰撞山地的檢測。確定炮彈所在位置對應(yīng)的陸地平面的行、列。求出炮彈所對應(yīng)的平面位置所對應(yīng)的場景中山地的高度。比較炮彈當(dāng)前位置和對應(yīng)山地高度的大小。如果炮彈當(dāng)前位置高于對應(yīng)山地的高度,則沒有碰撞,炮彈繼續(xù)運(yùn)動;否則,發(fā)生碰撞。

        基本算法思想:首先分別求出0號點(diǎn)到1,2號點(diǎn)的矢量,然后由兩個矢量求叉積,得到三角形平面的法矢量(B,C),接著通過法矢量和o號點(diǎn)坐標(biāo)可以寫出三角形平面的方程A(x-xo)+B(Y-Yo)+C(z-zo)=0,然后可以推導(dǎo)出在xz平面上的點(diǎn)對應(yīng)點(diǎn)的y坐標(biāo)的求值公式y(tǒng)=(C(zo-z)+A(xo-x)/B+Yo,最后通過該求值公式求出指定xz平面上的點(diǎn)對應(yīng)的地圖上點(diǎn)的y的值。

        在本游戲中,關(guān)于陸地坦克與山地的碰撞檢測、陸地坦克與水面的碰撞檢測,以及水上坦克與陸地的碰撞檢測的方法和炮彈與山地的碰撞檢測相似。

        6 游戲的優(yōu)化與改進(jìn)

        如果能在游戲的最后加上游戲成績的存儲與排行,會大大提高玩家對本游戲的體驗(yàn)。另外,游戲應(yīng)該開發(fā)成多種模式,不同的模式帶來不一樣的體驗(yàn),單一的模式會讓游戲很快失去對玩家的吸引力。同時應(yīng)該添加游戲難度的選擇功能,使玩家根據(jù)自己的情況選擇不同的等級進(jìn)行游戲,這樣才更加合理。

        [參考文獻(xiàn)]

        [1]吳亞峰,于復(fù)興.Android 3D游戲開發(fā)技術(shù)詳解與典型案例[M].北京:人們郵電出版社,2012.

        [2]謝明山,鄧艷芳.Android環(huán)境下開發(fā)五子棋游戲關(guān)鍵技術(shù)研究[J].電子世界,2014(14):390.

        [3]于寶華,賈于博,谷蘇港.基于Android的高校學(xué)生畢業(yè)設(shè)計管理系統(tǒng)設(shè)計[J].福建電腦,2017(12):390.

        猜你喜歡
        開始菜單碰撞檢測炮彈
        樹上長“炮彈”
        全新預(yù)測碰撞檢測系統(tǒng)
        裝填炮彈
        基于BIM的鐵路信號室外設(shè)備布置與碰撞檢測方法
        “炮彈”表妹
        Unity3D中碰撞檢測問題的研究
        電子測試(2018年1期)2018-04-18 11:53:00
        騎炮彈飛行
        BIM技術(shù)下的某辦公樓項目管線碰撞檢測
        讓W(xué)indows 10開始菜單更個性
        電腦愛好者(2015年5期)2015-09-10 07:22:44
        Win10開始菜單回歸 看Windows產(chǎn)品變遷
        個人電腦(2014年11期)2014-11-24 13:43:49
        成人国产av精品麻豆网址| 在线观看免费午夜大片| 久久国产影视免费精品| 日本顶级片一区二区三区 | 国产一区av男人天堂| 又粗又大又硬毛片免费看| 久久久久久久性潮| 男女裸交无遮挡啪啪激情试看| 无码的精品免费不卡在线| 久久精品这里就是精品| 亚洲一二三区免费视频| 欧美 国产 综合 欧美 视频| 国产精品无需播放器| 亚洲中文字幕第二十三页| 视频在线国产一区二区| 免费人成视频在线| 国产成人亚洲精品77| 女人天堂av免费在线| 噜噜综合亚洲av中文无码| 亚洲∧v久久久无码精品| 大胸美女吃奶爽死视频| 老女人下面毛茸茸的视频| 精品国内在视频线2019| a毛片全部免费播放| 风韵丰满妇啪啪区老老熟女杏吧| 91九色成人蝌蚪首页| 欧美艳星nikki激情办公室| 亚洲日韩区在线电影| 久久精品av在线视频| 国产乱妇无乱码大黄aa片| 麻豆第一区MV免费观看网站| 日本骚色老妇视频网站| av大全亚洲一区二区三区| 色欲av自慰一区二区三区| 日本国产一区二区三区在线观看| 日本一区二区三区四区啪啪啪| 成人性生交大片免费看96| 久久99精品免费一区二区| 亚洲第一页在线免费观看| 波多野结衣不打码视频| 少妇厨房愉情理伦片bd在线观看|