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

        ?

        基于Unity3D中C#腳本開發(fā)的飛機大戰(zhàn)游戲設(shè)計與實現(xiàn)

        2021-09-10 21:16:24張照乾呂文超黃猛
        科學(xué)與生活 2021年10期
        關(guān)鍵詞:腳本

        張照乾 呂文超 黃猛

        摘要:在信息化的時代,隨著人們生活水平的提高,人們對于娛樂的方式也越發(fā)豐富,而游戲則是一種深受廣大人民群眾喜愛的娛樂方式,漸漸成為人們生活中必不可少的一部分。本文通過Unity3D中c#腳本技術(shù)實現(xiàn)“飛機大戰(zhàn)”這一實例,詳細闡述開發(fā)3D飛機大戰(zhàn)的方法和技術(shù)。

        關(guān)鍵詞: Unity3D;飛機大戰(zhàn);c#腳本

        1 系統(tǒng)設(shè)計

        1.1 系統(tǒng)描述

        這款游戲主要是太空射擊類游戲,在游戲中,玩家可以駕駛自己的戰(zhàn)機,通過擊敗敵人來獲得相應(yīng)的分數(shù),游戲過程中還可以調(diào)試飛行速度,敵人是外太空飛碟和宇宙飛船,玩家可以控制飛機向敵機開火,同時躲避傷害,以保證自己的血量安全。撞擊敵人或者受到子彈攻擊護甲值減一,當護甲值為0時游戲失敗,玩家可以選擇再來一次或者退出游戲。

        2 關(guān)鍵技術(shù)實現(xiàn)

        2.1 對象資源池化管理

        以飛機本身為例,本游戲系統(tǒng)的資源管控方法基于游戲物體工廠管理UI、UI面板與游戲物體的激活與失活。游戲物體工廠擁有一個工廠基類BaseFactory,實現(xiàn)接口 IBaseFactory并在該基類中使用對象池技術(shù),使子彈、怪物、敵機在生成時不必反復(fù)創(chuàng)建和銷毀對象,只需要從對象池中取出與放回對象便可節(jié)省系統(tǒng)資源。

        游戲物體工廠擁有一個枚舉類型FactoryType,用于區(qū)分不同種類的游戲物體工廠。游戲物體工廠擁有三個工廠類GameFactory、UIFactory和UIPanelFactory繼承至工廠基類,它們之間的區(qū)別是修改了在對象池獲取資源時的資源路徑。

        2.2 系統(tǒng)關(guān)鍵算法實現(xiàn)

        2.2.1碰撞檢測基本原理

        碰撞檢測主要是檢測兩個或多個物體是否相交,可以通過計算兩兩物體之間的位置關(guān)系進行判斷?;蛘呖梢哉f碰撞檢測主要是計算兩個物體在幾何空間上的重疊空間的問題。對于二維空間中的碰撞檢測來說,計算量不是很大,計算過程不算復(fù)雜,因為物體都在一個平面上。但是在三維空間中就不同了,三維空間的碰撞檢測要比二維中的碰撞檢測復(fù)雜的多。雖然同樣是由多邊形構(gòu)成的三維物體,但是由于增加了一個維度,使得碰撞檢測的計算量大大的增加。

        碰撞檢測主要檢測的是三個問題。第一個問題就是兩個或多個物體之間是否發(fā)生了碰撞。第二,如果發(fā)生了碰撞,那么是在什么時間發(fā)生的碰撞、碰撞的持續(xù)時間和碰撞結(jié)束的時間。第三,如果發(fā)生了碰撞,那么碰撞點在什么位置。這三個問題基本上占據(jù)了碰撞檢測的全部計算量,計算過程也因此變得十分復(fù)雜。

        2.2.2基于OBB算法的碰撞檢測計算

        在進行碰撞檢測之前需要通過調(diào)用AddBoxCollider方法給所檢測的剛性物體添加包圍盒。其中剛性物體包括飛機、子彈、飛碟、敵機等實際的物體。在此以行動中的飛機為例。把玩家操控的飛機作為A物體,先通過Distance(A,B)方法計算出其他物體與A(飛機)物體距離最近的物體。如果得到的距離小于0,則說明碰撞了。如果大于0則需要利用碰撞檢測技術(shù)具體計算。當?shù)玫降木嚯x大于0時,利用OBB算法計算是否發(fā)生碰撞的規(guī)則如下所示。

        Algorithm:collision?detection?based?on?OBB

        Input:object?A?and?object?B

        Output:whether?two?objects?collide?or?not?at?any?moment

        Step1:SA←Get?All?Separating?Axis;

        Step2:i←0;

        Step3:result←FALSE;

        Step4:do{

        1)?CurrentSA?←SA[i];

        2)?rA?←Get?Projection?on?CurrentSA?of?A;

        3)?rB?←Get?Projection?on?CurrentSA?of?B;

        4)?T*L←Get?Projection?distance?on?CurrentSA?between?A?and?B;

        5)?If?(T*L?>rA+rB)

        {??return??result←FALSE;

        i++;??}

        Else??return?result?←TRUE;

        }while??!result

        3 游戲策劃

        3.1 游戲UI

        (1)屏幕上會顯示主角的裝甲以及得分。如果游戲結(jié)束,屏幕上會顯示“游戲結(jié)束”,同時還會顯示出“重新開始”按鈕。

        (2)主角

        主角擁有三級裝甲,被敵人擊中或撞擊一次,則損失一次裝甲值,當裝甲值為0時,游戲結(jié)束。

        3.2 游戲操作

        (1)本游戲?qū)⒃赑C平臺上開發(fā),按鍵盤上的W、S、A、D或上、下、左、右鍵控制主角上下左右飛行,按空格或鼠標左鍵射擊。

        (2) 敵人

        游戲中敵人分為初級敵人和高級敵人兩種:

        初級敵人:裝甲較弱,為飛碟類,以撞擊主角為主,沿弧線飛行。

        高級敵人:裝甲較強,為宇宙飛船類,可以發(fā)射子彈,后期子彈會越來越快,沿直線飛行。

        4 系統(tǒng)實現(xiàn)

        游戲有多個功能模塊,這里僅詳細講解“游戲開始”模塊和“游戲結(jié)束”模塊。

        4.1游戲開始

        (1)開始功能的實現(xiàn)

        游戲開始,首頁顯示游戲開始按鈕,點擊“開始游戲”按鈕,進入游戲。

        (2)開始按鈕的代碼:

        PublicvoidOnResetButtonClick ()

        {SceneManager. LoadScene(“Main”);

        4.2游戲結(jié)束界面的實現(xiàn)

        (1)重新開始按鈕

        重啟按鈕主要說的就是在游戲中,你點擊“再試一次”按鈕,本游戲就會重新開始,但不會記錄此次所操作的分數(shù)。

        PublicvoidOnResetButtonClick ()

        {SceneManager.LoadScene(“StartUI" );

        (2)分數(shù)顯示

        分數(shù)是在游戲結(jié)束時保留數(shù)據(jù),切換到場景后,游戲可以顯示讀取的數(shù)據(jù),然后對多次的游戲份數(shù)進行保存,可以對游戲得數(shù)進行查詢。

        4.3游戲主界面的實現(xiàn)

        (1)場景的搭建

        Unity包導(dǎo)入到項目中,將資源包作為面板直接拖放到項目中,然后選擇所有導(dǎo)入。導(dǎo)入后,選擇場景模型,拖放到“層次”面板,然后重置模型的變換組件。

        (2)用戶的功能實現(xiàn)

        需要在資源包中找到角色,把用戶主角放在“層次結(jié)構(gòu)”窗格中。

        5系統(tǒng)測試

        此飛機大戰(zhàn)游戲在Unity3D Mono 模擬器上運行,游戲運行平穩(wěn),界面簡單易懂,操作簡單,畫面明亮。

        6結(jié)語

        從游戲的開始界面、游戲界面、游戲?qū)ο?、游戲結(jié)束界面等模塊開始。使用Unity3D引擎,結(jié)合C#開發(fā)了一個簡單的飛機大戰(zhàn)游戲。游戲包括組件安裝、碰撞檢測和敵方出現(xiàn)位置是關(guān)鍵技術(shù)?;緦崿F(xiàn)了一般的游戲功能,可擴展性也很高。

        參考文獻:

        [1] 宣雨松,編著.Unity3D游戲開發(fā)[M].人民郵電出版社.2015

        [2]曾雪松,尚光龍。三維虛擬校園漫游動畫設(shè)計與實現(xiàn)一 以信陽職業(yè)技術(shù)學(xué)院為例[J].福建電腦.2016.

        [3]李莉,曾曉燕,李鍇,等.基于unity3d的模擬駕駛游戲.計算機產(chǎn)品與流通,2020(9):117-118.

        作者簡介:

        張照乾(1996-),男,漢族,河北邯鄲人,碩士,研究方向為計算機科學(xué)與技術(shù)、圖像處理

        呂文超(1998-),男,漢族,河北滄州人,碩士,研究方向為計算機技術(shù)、深度學(xué)習(xí)

        通信作者:黃猛(1976-),男,漢族,河南省新鄉(xiāng)人,碩士,教授,研究方向為GIS 、軟件工程、機器學(xué)習(xí)、深度學(xué)習(xí)、大數(shù)據(jù)分析,E-mail:hm@cidp.edu.cn

        防災(zāi)科技學(xué)院 河北三河 065201

        猜你喜歡
        腳本
        人生腳本
        酒駕
        此去人海茫茫,各自風(fēng)雨燦爛
        安奇奇與小cool 龍(第二回)
        數(shù)據(jù)庫系統(tǒng)shell腳本應(yīng)用
        電子測試(2018年14期)2018-09-26 06:04:24
        自動推送與網(wǎng)站匹配的腳本
        電腦愛好者(2018年6期)2018-04-23 16:53:16
        快樂假期
        神奇的數(shù)學(xué)
        愚人節(jié)大作戰(zhàn)
        小編的新年愿望
        中學(xué)生(2017年1期)2017-03-24 09:54:28
        亚洲中文久久精品无码| 日本精品中文字幕人妻| 亚洲亚色中文字幕剧情| 国产伦理一区二区| 99久久婷婷国产综合亚洲91| 午夜av内射一区二区三区红桃视| 一区二区三区日本高清| 玩弄放荡人妇系列av在线网站| 疯狂做受xxxx高潮欧美日本| 精品国产AⅤ一区二区三区V免费| 国产亚洲av夜间福利在线观看 | 潮喷失禁大喷水aⅴ无码| 九九视频在线观看视频6| 亚洲性无码av在线| av天堂亚洲另类色图在线播放| 亚洲国产精品无码久久久| 久草热8精品视频在线观看| 国产精品天干天干在线观蜜臀| 日本九州不卡久久精品一区| 亚洲精品国偷拍自产在线观看| 国产目拍亚洲精品一区二区| 色老汉亚洲av影院天天精品| 亚洲av无一区二区三区| 天堂无码人妻精品av一区| 国产午夜无码视频免费网站| 国产一区二区在三区在线观看| 尹人香蕉久久99天天拍| 日韩在线一区二区三区免费视频| 99热这里只有精品国产66| 草青青视频手机免费观看| 丰满少妇作爱视频免费观看 | 久久99精品久久久大学生| 免费xxx在线观看| 亚洲AV无码日韩综合欧亚| 青青草手机在线观看视频在线观看| 日韩放荡少妇无码视频| 国产精品九九九无码喷水| 日本精品少妇一区二区| 欧美日韩一区二区三区在线观看视频 | 国产女主播强伦视频网站| av免费在线播放视频|