国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Unity 3D 單機(jī)版拾金幣游戲的設(shè)計(jì)與實(shí)現(xiàn)

2020-08-01 09:33
喀什大學(xué)學(xué)報(bào) 2020年3期
關(guān)鍵詞:銀幣計(jì)分金幣

(喀什大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,新疆 喀什 844000)

0 引言

Unity 3D 是一款新型的功能強(qiáng)大、相對(duì)成熟的交互式游戲引擎[1],其具備簡(jiǎn)潔的圖形化界面和完善的游戲引擎插件,有強(qiáng)大的UGUI和多平臺(tái)、跨平臺(tái)特性,其內(nèi)置的Nvidia 公司的PhysX 物理引擎可模擬剛體碰撞、粒子模擬、重力等物理效果[2],使得對(duì)象物體具備質(zhì)量、摩擦力等物理屬性,提供給了游戲開(kāi)發(fā)者一個(gè)可視化的編輯窗口.

1 基于Unity 3D 單機(jī)版的拾金幣游戲?qū)嶒?yàn)設(shè)計(jì)

為增加單機(jī)版拾金幣游戲的趣味性,本實(shí)驗(yàn)在傳統(tǒng)的拾金幣游戲基礎(chǔ)上增加了銀幣預(yù)制體,設(shè)計(jì)并實(shí)現(xiàn)了在指定區(qū)域隨機(jī)產(chǎn)生金幣和銀幣、計(jì)分、碰撞時(shí)產(chǎn)生粒子功能這三個(gè)游戲效果.

(1)指定區(qū)域隨機(jī)產(chǎn)生指定個(gè)數(shù)的金幣、銀幣.為了避免玩家在沒(méi)有開(kāi)始游戲時(shí)和隨機(jī)產(chǎn)生的游戲?qū)ο蟀l(fā)生碰撞效果,在指定區(qū)域內(nèi)隨機(jī)生成玩家設(shè)置的金幣、銀幣數(shù)量.

(2)計(jì)分功能.為了增加游戲的趣味性,玩家控制小球碰撞到金幣、銀幣時(shí),總分增加,血量增加;玩家控制小球碰撞到墻壁,總分減少,血量相應(yīng)減少,累計(jì)減分到0 分,游戲停止并在當(dāng)前場(chǎng)景顯示“Game Over”.

(3)粒子功能.小球碰撞到金幣、銀幣實(shí)現(xiàn)拾取,金幣、銀幣消失的同時(shí)產(chǎn)生爆炸粒子效果.

2 基于Unity 3D 單機(jī)版的拾金幣游戲?qū)嶒?yàn)實(shí)現(xiàn)

2.1 場(chǎng)景搭建

(1)搭建好實(shí)驗(yàn)中所需場(chǎng)景.創(chuàng)建四個(gè)cube,調(diào)整大小、位置并圍成墻體,打組,設(shè)置tag 為qiang.創(chuàng)建一個(gè)Sphere 作為小球,調(diào)整到墻體右下角.再創(chuàng)建一個(gè)Sphere,調(diào)整Sphere 的大小、形狀、顏色,設(shè)置tag 為GoldMoney,并拖放到prefabs 中命名為Golden Prefabs,Ctrl+d 復(fù)制一份,修改顏色,設(shè)置tag 為SilverMoney,命名為Silver prefabs.

(2)在當(dāng)前主場(chǎng)景新建一個(gè)Cube 對(duì)象,用來(lái)限定游戲?qū)ο笊傻膮^(qū)域并將創(chuàng)建游戲?qū)ο竽_本CreatMoney 掛載到指定游戲?qū)ο笊傻膮^(qū)域Cube 對(duì)象上,在Cube 對(duì)象的Inspector 視圖中1中設(shè)置Sliver Prefabs、Golden Prefabs 為相應(yīng)的預(yù)制體,輸入初始金幣、銀幣個(gè)數(shù).

圖1 Cube 對(duì)象的Inspector 視圖

(3)主場(chǎng)景添加UGUI界面.Unity中的UGUI 系統(tǒng)容許用戶快速直觀地創(chuàng)建圖形用戶界面,利用UGUI 創(chuàng)建Canvas、Text、Image 控件來(lái)實(shí)現(xiàn)系統(tǒng)的計(jì)分功能,Slider 實(shí)現(xiàn)系統(tǒng)的血條效果[3]87-110.拾取金幣、銀幣時(shí),金幣、銀幣消失,產(chǎn)生粒子爆炸效果,計(jì)分和血條量增加;碰撞到墻體時(shí),計(jì)分和血條量減少.Text 中顯示當(dāng)前累計(jì)分值,當(dāng)分值減少為0 時(shí),顯示“game over”.

2.2 實(shí)現(xiàn)效果腳本編寫

2.2.1 在指定區(qū)域創(chuàng)建游戲?qū)ο?/p>

在Unity 3D 當(dāng)中,為了避免資源的浪費(fèi),快速?gòu)?fù)制出反復(fù)使用的游戲?qū)ο?,利用Clone 技術(shù),在指定區(qū)域隨機(jī)產(chǎn)生指定個(gè)數(shù)的金幣、銀幣,并掛載到指定區(qū)域Cube 對(duì)象上.以產(chǎn)生金幣為例,設(shè)置金幣個(gè)數(shù)goldenMoneyCount 訪問(wèn)修飾符為public,可以實(shí)現(xiàn)在屬性面板上輸入指定隨機(jī)產(chǎn)生的個(gè)數(shù),編寫產(chǎn)生金幣腳本CreatMoney.cs,實(shí)現(xiàn)代碼如下:

2.2.2 計(jì)分功能實(shí)現(xiàn)

玩家通過(guò)按取鍵盤上相應(yīng)按鈕來(lái)實(shí)現(xiàn)小球的向上、向下、向左、向右四個(gè)方向的移動(dòng)操作,血條health 初始值設(shè)為100.此案例中小球運(yùn)行時(shí),碰撞到金幣,碰撞一個(gè)金幣總分加10分,碰撞到銀幣,碰撞一個(gè)銀幣總分加5 分,同時(shí)血條量增加相應(yīng)分值;當(dāng)小球運(yùn)行碰撞到墻體時(shí),碰撞一次墻體總分減10 分且血條量減少相應(yīng)分值,當(dāng)總分累計(jì)減少到0 分時(shí),全局結(jié)束,游戲中止運(yùn)行并在當(dāng)前場(chǎng)景中顯示“GameOver”.如圖2 和圖3 所示.

圖2 游戲運(yùn)行效果圖

圖3 游戲結(jié)束效果圖

編寫拾取金幣腳本EatMoney.cs,掛載到小球Sphere 上,實(shí)現(xiàn)計(jì)分的部分代碼如下:

2.2.3 粒子效果實(shí)現(xiàn)

Unity 3D 內(nèi)嵌的Shuriken 粒子系統(tǒng)的模塊化管理,個(gè)性化的粒子模塊配合粒子曲線編輯器,使設(shè)計(jì)人員能方便高效地創(chuàng)作出各種繽紛復(fù)雜的粒子效果[3]113-125.為了實(shí)現(xiàn)拾取金幣時(shí)金幣產(chǎn)生的消失爆炸特效,在當(dāng)前場(chǎng)景創(chuàng)建粒子對(duì)象Particl Systm,縮小半徑,賦值為0.01,修改形狀和設(shè)置生命周期速度,完成初始化的修改.在當(dāng)前場(chǎng)景定義一個(gè)粒子游戲?qū)ο髈bj1.將此粒子對(duì)象修改為金幣、銀幣的子對(duì)象,該實(shí)驗(yàn)中當(dāng)父對(duì)象被銷毀時(shí),子物體也同時(shí)被銷毀,增加了游戲視覺(jué)上的直觀性.

將腳本添加到拾取金幣腳本EatMoney.cs中,部分代碼如下:

3 結(jié)語(yǔ)

本文應(yīng)用Unity 3D 游戲引擎開(kāi)發(fā)的單機(jī)版拾金幣游戲,在傳統(tǒng)經(jīng)典拾金幣游戲的基礎(chǔ)上,增加了銀幣預(yù)制體,通過(guò)測(cè)試,實(shí)現(xiàn)了在指定區(qū)域隨機(jī)產(chǎn)生金銀幣、UGUI 界面的計(jì)分和血條增減、拾取金幣銀幣時(shí)產(chǎn)生粒子效果并爆炸消失等三個(gè)游戲效果,經(jīng)測(cè)試達(dá)到了預(yù)期效果.

猜你喜歡
銀幣計(jì)分金幣
嘩啦啦,下金幣啦
帶定性判斷的計(jì)分投票制及其公理刻畫
水中的金幣
大象法官分銀幣
高級(jí)教師評(píng)審傾力一線教師
面包里的銀幣
基于單片機(jī)的中國(guó)式摔跤比賽計(jì)分器開(kāi)發(fā)設(shè)計(jì)
誰(shuí)偷了我的金幣
找金幣
普魯士18世紀(jì)對(duì)華貿(mào)易銀幣初探
东明县| 神池县| 梅州市| 乌鲁木齐市| 鄢陵县| 永仁县| 乌兰县| 威信县| 灌阳县| 敖汉旗| 堆龙德庆县| 横峰县| 睢宁县| 南郑县| 扬中市| 津市市| 大新县| 中江县| 冕宁县| 舟曲县| 西宁市| 曲水县| 天全县| 平南县| 西乡县| 横山县| 醴陵市| 郎溪县| 维西| 茌平县| 固安县| 西林县| 科尔| 建湖县| 波密县| 龙江县| 云安县| 黔江区| 蓝田县| 英德市| 武胜县|