第一篇:射擊游戲作文
射擊游戲作文
在學習、工作、生活中,大家都跟作文打過交道吧,通過作文可以把我們那些零零散散的思想,聚集在一塊。相信許多人會覺得作文很難寫吧,以下是小編為大家收集的射擊游戲作文,歡迎大家借鑒與參考,希望對大家有所幫助。
射擊游戲作文1“加油、加油”,19號教室傳來吶喊聲,這可不是電視上的奧運會,而是我們在玩一場激動人心的射擊游戲呢。
比賽就要開始了,我來給你們介紹一下游戲規則吧!首先老師將我們分為了兩個隊,一個叫努力隊,一個叫猛虎隊,努力隊的隊長是陳雨璇,而我們猛虎隊的隊長是張語軒,老師作為小記者采訪我們,她先采訪了努力隊的成員,他們都很緊張,老師又采訪我們隊,我們都很有自信。
現在比賽開始了,第一位上場的是努力隊的隊長陳雨璇,只見她左腳在前,右腳在后,身體向前傾,這時,她腳底一滑,失去了重心,還未站穩,就順手一丟,結果沒有丟進圓圈,還差點摔倒了。第二輪,她調整了心態,眼睛直勾勾地看著黑板,她用力一投,終于得到了一分,第三輪,她吸取了前兩次的教訓,竟然得了滿分。
接下來該猛虎隊的`隊長張語軒出場,她邁著小碎步跑了過來,站成丁字步,隨手一丟,丟了個空。第二輪,她換了個姿勢,學著前面同學的樣子,啊,竟然中了兩分,她高興得一蹦三尺高。
終于輪到我了,我自信滿滿地站在線前,也學著他們的樣子,看著容易實則很難。第一次就失敗了,第二輪,我調整了一下姿勢,左腳在前,右腳在后,身體向前傾,瞇著眼,專心致志地盯著黑板上的目標,使勁地丟過去,可還是失敗了。第三次我總結了經驗,瞄準目標,“啊,終于投中了!”我高興極了。
最后分數統計出來了,我們猛虎隊取得了勝利,獲得了老師的嘉獎,我們都很高興。
努力隊失敗了,他們都很傷心,“老師,我有話說。”這時,我打斷老師的話,“老師,我覺得他們沒有失敗,他們努力隊真的很努力。”說完掌聲如雷,老師也為我豎起了大拇指。
今天這節作文課真有趣,我們不僅學到了課本上的知識,還明白了友誼第一,比賽第二的道理。
射擊游戲作文2今天,我和爸爸打算去銀泰里買雙肩包。
路上,一個射擊游戲的畫面映入我的眼簾。我的心開始狂跳,手也癢了起來。但是我沒向爸爸提能不能去玩的要求,因為往常他基本都會拒絕。可這次爸爸心血來潮,問了我一句:“知知,你想不想玩?”這便正中了我的心意啊!我急忙點了點頭,生怕老爸會反悔。
我們來到了射擊游戲的服務臺邊,爸爸問服務員:“請問玩這個游戲需要充卡嗎?”啊!千萬不要,千萬不要,不然我就不能玩這個游戲了。服務員,請你說不用吧!我在心中苦苦哀求著——只見服務員的嘴巴慢慢張開了,“可以不充卡。”從她的嘴中清晰地吐出了這幾個字。哦,萬歲!我的心在歡呼。
我挑了一把迷彩槍,將它端了起來。哎呦!這可真重啊,希望它的后座力不會特別大。于是,我的那把槍便向屏幕上的一頭Biglion指去。我上下不安地扣動扳機。“啪——”一聲,槍托由于后座力打到了我的肩膀上,一陣麻酥酥的感覺一下子傳到了我的肩膀上,不過那種感覺點到為止,讓我感到十分舒適。誰知屏幕上突然飛出一只野鴨,結果獵獅不成撿了一只鴨,我又向一只狼開了槍,誰知我只打到了它的腳,讓它跳走了。看來我的射擊做不到百發百中啊!我利用槍管上的紅點標位器,鎖定了一只野豬的腦袋,“啪——”一聲野豬便成了我的囊中之物。
在這個射擊游戲中,我了解了怎樣去當一個好獵手。他需要有耐心,因為在森林中不可能到處都有動物;而且他還要有知識,這樣他就能知道動物們各自的特點了。看來去打獵,僅靠一把槍和子彈是無法解決問題的。
射擊游戲作文3快點,快點,19號教室有哭聲。這不是電視上的奧運會,但我們正在進行一場激動人心的射擊比賽。
游戲即將開始。讓我給你介紹一下游戲規則。首先,老師把我們分成兩個隊,一個叫硬隊,一個叫老虎隊。硬隊隊長是陳宇軒,我們老虎隊隊長是張雨萱。老師以小記者的身份采訪了我們。她先面試了硬團隊的成員,他們都很緊張。老師又面試了我們隊,我們都很自信。
現在比賽開始了,第一個上場的是陳宇軒,這位努力工作的隊長。我看到她左腳在前,右腳在后,身體前傾。這時,她的腳滑了一下,失去了重心。還沒站穩,她就輕松扔了過去,但沒扔進圈里,差點摔倒。第二輪,她調整心態,直視黑板。她使勁扔,終于得了一分。第三輪,她吸取了前兩次的教訓,得了滿分。
接下來,老虎隊隊長張雨萱出場了。她邁著小步跑過來,站在一個丁字構圖的臺階上,用一只手把它扔掉。第二輪,她改變姿勢,向同學學習。啊,她贏了兩分,高興得跳了三尺高。
終于輪到我了。我自信地站在隊伍前面,向他們學習。看著容易,看著難。第一次失敗了。第二輪調整姿勢,左腳在前,右腳在后。我俯下身子,瞇著眼,目不轉睛地盯著黑板上的目標,使勁扔,但還是失敗了。第三次總結經驗,針對目標。啊,終于打中了!我欣喜若狂。
最后把分數算出來。我們的老虎隊贏了,還得了老師的獎。我們都很開心。
努力的團隊失敗了,他們都很難過。老師,我有話要說。這時,我打斷了老師。老師,我不認為他們失敗了。他們很努力,真的很努力。掌聲雷動后,老師對我豎起大拇指。
今天的作文課真的很有趣。我們不僅學到了課本上的知識,也明白了友誼第一,競爭第二的道理。
第二篇:射擊游戲
射擊游戲
?編號:SJYX1?名稱:近軌道先鋒
?大小:20MB?適用固件:4.0固件及以上
?游戲由13個游戲關卡和5個不同的場景組成。玩家在游戲中可以使用狙擊槍、等離子槍、火箭發射器和手榴彈等6種不同的武器裝備。
?游戲包含單人模式和多人模式,其還支持玩家通過WiFi/藍牙進行在線或聯機游戲。
?編號:SJYX2?名稱:近軌道先鋒
?大小:222MB?適用固件:3.1.2固件及以上
?游戲的劇情為軍國主義保皇黨人囚禁了你們的領袖,并在銀河中散播恐怖展開激戰,而你是一名王牌明星飛行員。你需要率領反抗軍戰機隊,加入到高強度模擬空戰中與他們決一死戰。反抗軍和保皇黨之間的戰爭將會貫穿整個太空,橫跨數個星系,這一切都將由全高清畫面所呈現。你將會在極富未來感的城市、叢林、沙漠和冰山中戰斗。
?單人游戲運,行流暢,操作簡便多人游戲部分則支持雙人對戰(藍牙/WiFi)。
?編號:SJYX3?名稱:生死9毫米
?大小:733MB?適用固件:3.1.3固件及以上
?游戲集成了俠盜系列犯罪游戲的內容,包括幫派、槍戰等常見的犯罪元素,不過游戲的主角看起來更像是警察的臥底,《9毫米》明顯的表現出俠盜類游戲的風格,自由的駕駛、打架、槍戰,畫面充斥暴力、金錢與毒品。
?本地或者在線的死亡對戰或者團隊死亡對戰、支持最多12名玩家進行對戰、4張不同的地圖以及16種不同的武器和多種的武器性能升級
?編號:SJYX4?名稱:戰地:叛逆連隊
2?大小:234MB?適用固件:3.0固件及以上
?將會橫跨5個不同區域、多達14個單人任務。將會在叢林、沙漠和雪地之中進行。同時游戲還將會包含多人在線模式,可以通過聯網進行小隊作戰,最多支持4名玩家通過3G、Wifi、OTA聯機,進行TDM和DM多人模式。
?游戲注重體現現代戰爭的真實性,玩家可破壞各種場景物品,能對建筑物框架進行破壞。同時注重小隊配合作戰也是《叛逆連隊2》的特點
?編號:SJYX5?名稱:恐龍戰士
?大小:160MB?適用固件:3.0固件及以上
?還有這3種游戲模式,你可以和多達4個人一起進行多人游戲哦
?Nanosaur 2是一款3D風格的飛行射擊游戲,游戲采用重力感應控制
?游戲中需要要小心的操控飛行,注意炮塔、迅猛龍或其他恐龍的攻擊。超過地圖的空間還是會撞壁爆炸的.哦
?編號:SJYX6?名稱:秘密行動
?大小:657MB?適用固件:3.0固件及以上
?在游戲中,玩家會扮演三名不同的特工,每個人都擁有自己不同的能力。?多人模式也可讓你和朋友組隊(本地藍牙)。
?秘密行動是以世界諜戰為基礎的動作游戲,橫跨日內瓦,杜布羅夫尼克,香港等地區來完成各種富有挑戰性的任務。
?編號:SJYX7?名稱:戰地:叛逆連隊
?大小:257MB?適用固件:3.0固件及以上
?五張各式的地圖和三種不同模式(自由戰,團隊死亡戰,控制戰)下與多至5位好友聯機作戰。還可以直接通過藍牙進行本地聯機,或通過Wi-Fi聯網與世界各地的朋友們對戰。
?操縱包括坦克、越野車和滑翔機在內的3種交通工具來干掉敵人,或進行成功逃離。武器還可以用機槍、火箭筒、狙擊步槍及火焰噴射器等多種真實二戰武器。
?編號:SJYX8?名稱:現代戰爭2黑色飛馬
?大小:566MB?適用固件:3.1.2固件及以上
?玩家將操縱3名可操縱角色之一,投身到橫跨中東、東歐與南美的12大戰場中去。臉部細節動畫以及慢動作瞬殺帶來令人屏息的緊張體驗。15種真實軍用武器可供使用,您可以直接從敵人處獲取,也可利用數種附件對其進行升級。中彈或遭受其他傷害時畫面產生模糊效果、武器上展現動態光影都營造出真實的戰爭體驗。多人游戲方面,支持最多10名玩家可同時參與在線與本地對抗。
?編號:SJYX9?名稱:戰列艦
?大小:20MB?適用固件:3.1.2固件及以上
?一款經典戰艦游戲,指揮你的軍艦,將對手擊沉,具有多種不同的游戲模式,并支持多人對戰。通過巧妙的部署戰艦,避開敵方部隊的探測;運用火力偵察鎖定敵船,將它送入海底!讓你如臨其境的逼真炮聲,以及無線電中不時響起的呼叫!你所熟知并鐘愛的戰艦,都將真實展現在你面前
?編號:SJYX10?名稱:合金風暴
?大小:20MB?適用固件:3.1.2固件及以上
?實時多人-支持3G和Wi-Fi同其他玩家聯機比賽,生存模式:在合作多人模式下與朋友合作或單人多次消滅敵人,回旋裝置允許通過iPhone 4和iPod touch四代裝置進行精確控制
?高解析支持的下一代3D圖像、眾多飛行器可供選擇、自定義飛行器導彈和機槍 ?不同方向擊打,執行高難度機動動作、3D空間全360度飛行
?編號:SJYX11?名稱:鋼鐵大戰
?大小:20MB?適用固件:3.1.2固件及以上
?一個 3D平面射擊游戲,游戲單人戰斗有 3 種不同的模式,多達 32 個關卡,多人戰斗最多可支持 4 人 WIFI 連接,玩家需在遙遠的鋼鐵星球上為了最強名號的榮譽而戰,其精彩的戰斗射擊場景定能讓你熱血澎湃。喜歡火爆刺激的射擊游戲?想體驗與對手猛烈互擊,在槍林彈雨之中狂奔躲閃然后消滅對手的快感么?那么可以試試這款《Iron Wars》,雖然游戲里你將成為一個鋼鐵圓球……
?編號:SJYX12?名稱:三國殺
?大小:20MB?適用固件:IOS4固件及以上
?這是一個交織著扮演、推理、典故的游戲,充滿著智慧的搏殺、人性的對決,符合中國人的審美情趣和娛樂需求。
?三國殺online是移植三國殺實體紙牌的正統之作,由盛大邊鋒的研發,力圖帶來最完美的三國殺游戲體驗。游戲嚴格遵循官方設定的規則和邏輯,并根據最新的動態進行實時調整,保證您能第一時間玩到原汁原味、專業嚴謹的三國殺。
?編號:SJYX13?名稱:牛仔神槍手
?大小:20MB?適用固件:IOS4固件及以上
?Cowboy Guns HD在很多設計上比較獨特,比如80度的俯視角,樂高造型人物,雙搖桿操作方式,帶點復古粗獷色彩的3D場景構架,再加上濃烈的美國西部風情,這些要素都吸引著玩家很好地代入到游戲角色中去。
第三篇:射擊游戲 Java
游戲資源是從cping1982的博客里下載的(http://blog.csdn.net/cping1982/article/details/6725015)。
下載下來的源碼是反編譯的,我按照自己的思路,盡量模擬跟它一樣的功能效果,用自己的代碼實現,并且自己寫了一個地圖編輯器。用到的技術大概有:swing基本控件,線程,XML讀寫,IO,反射的簡單應用,2D繪圖。
最重要的一個自定義類:Canvas。
每個canvas都有一個render方法和update方法,每個canvas又可以添加別的canvas,類似swing的component結構,每個canvas執行render和update的時候都會遍歷所有子canvas執行render和update,從而實現所有canvas都執行渲染和更新。游戲的刷新機制:
這個刷新機制是直接學的原代碼里面的實現機制,看它沒注釋的代碼著實蛋疼,還是請教了我師傅desolatecity大神才理解的--!。
最高層是一個繼承JFrame的GameFrame,實現了Runnable,游戲啟動后會單獨運行不斷循環刷新,每隔大概15ms就執行一次render,并將整個循環所用時間通過update方法傳給canvas,最高層canvas再一層一層傳遞下去,實現所有canvas的渲染和更新。大致代碼實現如下:
[java] view plaincopy
1.while(gameOn){
2.// 獲取開始時的系統時間
3.long startTime = System.currentTimeMillis();4.5.// 標記時間所用變量
6.long l1;
7.long l2 = System.currentTimeMillis();8.long l3 = System.currentTimeMillis();9.10.// 執行for循環,直到經過了step毫秒
11.for(l1 = l3l2){ 12.l3 = System.currentTimeMillis();13.}
14.// for循環結束,開始渲染和更新
15.l2 = System.currentTimeMillis();// 重置l2
16.17.this.getCurrentCanvas().render(g2);// 渲染
18.19.this.getGraphics().drawImage(bufImg, 0, 0, null);// 將緩沖圖片畫到JFrame
20.21.long endTime = System.currentTimeMillis();// 獲取結束時的系統時間
22.23.this.getCurrentCanvas().update(endTime 元素”的映射關系將時間和對應元素存儲到一個IdentityHashMap里,然后游戲的主canvas在update的時候遍歷IdentityHashMap,若當前時間滿足map里面的時間,則將對應的元素提取出來,添加到當前的子canvas列表里面,從而一個新的元素(或敵人,或提示消息等)就被添加到了界面上。這里我用到了一個比較少用的IdentityHashMap,原本直接用的是HashMap,后來發現一個時間有時候要對應多個元素,然后上網查到了這個東東,但是由于鍵是按照對象來存儲的,所以要把時間用String對象來存儲,搞得讀取和存儲的時候各種麻煩。結果后來師傅一指點才知道,可以直接用HashMap來存儲“時間--ArrayList”,這樣又方便又直接。--!后來嫌麻煩也不去改了。。
地圖編輯器:
地圖編輯器沒有什么特別費腦袋的地方,就是各種swing控件的運用,還有xml的讀寫,簡單的反射應用等。
由于整個游戲基本上都是在邊學變寫,所以很多地方寫的很粗糙,以至于后來去整理的時候發現前面的代碼結構簡直丑死了--,改都該了半天。
最后附上源碼下載地址,如果有興趣的話可以互相探討學習。
下載地址:http://download.csdn.net/download/jianglihui0330/4493082
游戲截圖:
地圖編輯器截圖:
第四篇:射擊游戲實例
第七講 射擊游戲實例
學習目標: ? 設置顯示圖標的屬性
? 運動圖標中Direct to Grid類型的使用 ? Goto、Test函數的使用 ? 使用交互圖標的按鍵響應 ? 聲音圖標的使用
? 利用Random函數隨機定義顯示位置 程序功能
飛機每4秒移動到一個隨機位置,利用方向鍵移動瞄準器。瞄準器套住飛機后,可以按鍵射擊,飛機被擊中后爆炸。2 主要操作步驟
? 拖入計算圖標,名為“初始化”,在計算窗口中輸入: x:=50 y:=50 ——(x,y)為瞄準器的坐標 x1:=Random(1,100,1)y1:=Random(1,100,1)——(x1,y1)為飛機的坐標
拖入顯示圖標,名為“瞄準器”
打開菜單命令 [Modify]/[Icon]/[Properties],設置Positioning為On Screen,Movable為On Screen,并設置Layer為3 拖入顯示圖標,引入飛機的圖片
打開菜單命令 [Modify]/[Icon]/[Properties],設置Positioning為On Screen,Movable為On Screen 拖入運動圖標,雙擊打開屬性窗口,選擇Type為Direct to Grid,選中被射擊物,拖動圖片定義Base和End,定義Destination為x1和y1,并設置Concurrency為Perpetual 拖入運動圖標,設置瞄準器的運動圖標同上,Destination為x和y 拖入交互圖標,再拖入計算圖標到交互圖標右側,名為“4秒后移動”,選擇Time Limit響應類型
雙擊響應類型符號,設置Time Limit為4,取消Show Time Remaining的選擇,設置Branch為Continue 打開計算圖標窗口,輸入以下內容: x1:=Random(1,100,1)y1:=Random(1,100,1)?
?
?
? ?
?
GoTo(IconID@“移動飛機”)—— GoTo為系統函數
? 拖入計算圖標到交互圖標最右側,雙擊響應類型符號,選擇Type為Keypress,設置Key(s)為leftarrow
注:leftarrow為系統指定的鍵盤左鍵的名稱
打開計算圖標窗口,輸入以下內容: x:=x-5 Test(x<0,x:=0)
——Test(條件,表達式1,表達式2)是系統函數,條件成立時,執行表達式1,否則執行表達式2 同理,拖入三個計算圖標,Key(s)分別為rightarrow、uparrow和downarrow
在rightarrow計算窗口中輸入: x:=x+5 Test(x>100,x:=100)在uparrow計算窗口中輸入: y:=y-5 Test(y<0,y:=0)在downarrow計算窗口中輸入: y:=y+5 Test(y>100,y:=100)
拖入群組圖標到交互圖標最右側,雙擊響應類型符號,設置Key(s)為Tab,Branch為Exit Interaction,在Active If中輸入ABS(x-x1)<20 & ABS(y-y1)<20
打開群組圖標,在二級流程線上拖入顯示圖標,引入爆炸圖片
打開菜單命令 [Modify]/[Icon]/[Properties],設置Positioning為In Area,Movable為In Area,拖動圖片定義Base和End,設置Initial為x1和y1
在二級流程線上拖入清除爆炸畫面的擦除圖標 ?
?
?
?
?
?
第五篇:Unity3d射擊游戲報告
Unity3D游戲開發
課程設計實驗報告
項目名稱 GoldCoinGame 班 級 11402 小組成員唐智 梁俊龍薛柯 高立存 姓 名唐智 學 號1404240717
1.游戲說明
游戲運行畫面:
游戲目標:收集八個硬幣,得到的硬幣數量會顯示在右上角。
游戲菜單:按esc顯示,有三個選項:繼續游戲,重新開始和退出游戲。
操作:WASD控制方向,12切換武器,r填裝彈藥,空格space跳躍。
步槍狀態下: 鼠標右鍵——瞄準
手槍狀態下: 鼠標右鍵——消音器
2.游戲素材來源:
1.開火音效:手槍與步槍開火音效來源于課堂上的實驗:Fps游戲中的MachineGun開火音效。裝彈音效:來源于網絡。
2.SkyBox,水,Terrain的草地和椰樹等來源于課堂上的實驗:Survivalland。
3.工廠模型Hangar_Full:來源于網絡。
Cube的貼圖:來源于網絡。
4.步槍和手槍模型及其動畫:來源于網絡。
5.金幣模型,塑料凳模型:使用3dmax軟件自制。
6.顯示金幣數量的CoinGUI的9張圖片:采用Windows畫圖軟件繪制。
3.Unity版本:
Unity 5.5.2f1(64-bit)
4.操作步驟
1.首先創建環境,CreatEmpty——Environment,將課堂上做過的水的預制體 DaylightWater放入到其下。
2.創建一個Terrain和三個DirectionalLight。
3.地形的凸起和凹陷操作界面
4地形的貼圖操作界面
5.設置樹木和草地。
7.調整好光線角度,再把工廠預制體拖到小島上。效果預覽
8.創建一個Empty,給它添加Capsule,MeshRenderer,CharacherController,和Rigibody。(MouseLook和CharacterMotor以及Fpsinput均是課堂上使用過的例子,之后會用到)
9.將Empty命名為MyFirstPersonController,將tag改為Player。把主攝像機移動到該目錄下。
10.在攝像機maincamera下添加如下的Empty:weapon——m4a1、handgun,用來存放武器。此外,再給camera添加skybox,選取合適的天空盒。
11.weapon添加一個js文件playerweapon,將步槍和手槍的預制體分別加到m4a1和handgun下。
Playerweapon.js主要控制武器的基本操作:開火,換彈和切換武器。function Update(){
if(Input.GetButton(“Fire1”)){
BroadcastMessage(“fire”);//對子類發送fire的信息,從而達到調用所有名為fire函數的效果 }
if(Input.GetButton(“reload”)){
BroadcastMessage(“reload”);}
if(Input.GetKeyDown(“1”)){
BroadcastMessage(“draw”);//按1時播放動畫 SelectWeapon(0);}
else if(Input.GetKeyDown(“2”)){ SelectWeapon(1);} } function SelectWeapon(index : int){
for(var i=0;i // Activate the selected weapon if(i == index) transform.GetChild(i).gameObject.SetActive(true); // Deactivate all other weapons else transform.GetChild(i).gameObject.SetActive(false);} }//切換武器的函數 12.給empty添加m4_preview,該文件主要負責步槍的子彈數量和開火音效播放,以及步槍的裝彈。之后添加audiosource,選擇開火的子彈發射音效文件。 13.添加一個UI----canvas,加入兩個text,用來顯示兩把武器的子彈數目。 M4_preview的主要函數: function Update(){ GameObject.Find(“/Canvas/Text”).GetComponent(Text).text=“ :”+ bulletsLeft+“/∞”;//該函數可以將步槍子彈數量傳遞給text } function fire(){ if(bulletsLeft == 0) return; if(Time.timeTime.deltaTime; // Keep firing until we used up the fire time while(nextFireTime < Time.time && bulletsLeft!= 0){ GetComponent. FireOneShot(); nextFireTime += fireRate;} Update();//實現開槍后刷新text的子彈數量 } function FireOneShot(){ var direction = transform.TransformDirection(Vector3.forward); var hit : RaycastHit; if(Physics.Raycast(transform.position, direction, hit, range)){ // Apply a force to the rigidbody we hit if(hit.rigidbody) hit.rigidbody.AddForceAtPosition(force * direction, hit.point); if(hitParticles){ hitParticles.transform.position = hit.point;hitParticles.transform.rotation = Quaternion.FromToRotation(Vector3.up, hit.normal);hitParticles.Emit();} // Send a damage message to the hit object hit.collider.SendMessageUpwards(“ApplyDamage”, damage,SendMessageOptions.DontRequireReceiver);} bulletsLeft--; m_LastFrameShot = Time.frameCount;enabled = true; // Reload gun in reload Time if(bulletsLeft == 0) BroadcastMessage(“reload”);//沒有子彈后自動裝彈 } function reload(){ yield new WaitForSeconds(1);//裝彈等待時間 if(clips > 0){ //彈夾數量大于0時才可裝彈 clips--; bulletsLeft = bulletsPerClip; } Update();//裝彈完成后更新text顯示的子彈數量 yield new WaitForSeconds(1);} 14.步槍的預制體m4animation,m4.js主要負責步槍的開火、裝彈等動畫播放。給它添加一個audiosource,選擇下載的武器換彈音效。 15.手槍的步驟和步槍類似,就不在闡述,不同處如需要修改開火的速率(firerate)等參數即可。 16.添加兩個武器的貼圖到顯示彈藥的text的左側,再添加一張背景圖,調整好位置后效果如圖: 17.添加菜單:在canvas中添加一個panel,在panel下添加三個button,分別對應退出,重新開始和繼續,再添加一個text,內容為 “已暫停”。 18.添加一個empty命名為_GM,給他添加Manager.cs,一個負責菜單的文件。 其主要部分如下: void Start(){ UIPanel.gameObject.SetActive(false);isPaused = false;} void Update(){ if(Input.GetKeyDown(KeyCode.Escape)&&!isPaused)Pause(); else if(Input.GetKeyDown(KeyCode.Escape)&& isPaused)UnPause();} public void Pause(){ isPaused = true; UIPanel.gameObject.SetActive(true); Time.timeScale = 0f;} public void UnPause(){ isPaused = false; UIPanel.gameObject.SetActive(false); Time.timeScale = 1f;} public void QuitGame(){ Application.Quit();} public void Restart(){ Application.LoadLevel(0); } 主要負責對應菜單的按鈕的功能 之后,給三個按鈕加上相應的貼圖和文字,在OnClick一欄中,選擇_GM,在右側下拉選擇之前manager中對應的函數,比如退出游戲的Quit按鈕就選擇QuitGame。另外,編輯Panel的image,可以更改菜單的背景圖片。 效果如圖 19.建立cube的預制體:創建一個3dobject,建立一個cube,再放在預制體的文件夾perfabs里,再更改cube的貼圖為黑色,命名為cube_dead,同樣拖入perfabs中。 給預制體cube添加一個DamageReciver,使它能接收到子彈的傷害,從而從cube轉換成cube_dead。 同時,勾選中iskinematic,讓這個預制體被子彈擊中前不受到里的影響,這樣可以把cube懸空而不掉落,而變成cube_dead則會掉落。 20.把制作的coin模型導入,添加剛體,同樣勾選iskinematic,并加入CapsuleCollider,勾選isTrigger,最后關聯Coin.cs。 void Update(){ transform.Rotate(new Vector3(rotationSpeed * Time.deltaTime, 0, 0));} void OnTriggerEnter(Collider col){ if(col.gameObject.tag == “Player”){ col.gameObject.SendMessage(“itemPickup”);Destroy(gameObject);} } 分析: 硬幣沒被拾取時,會沿著x軸旋轉 玩家觸碰到coin時,會傳遞一個信息itemPickup,提示該硬幣已經被拾取,之后會銷毀該硬幣。 21.回到第一人稱控制器,給MyFirstPersocontroller添加腳本item,選擇金幣拾取音效、拾取貼圖。創建并添加提示文字GUItext。 創建一個empty命名為CoinGUI,添加guitexture,選擇image為coin0,即沒有失去硬幣時候的顯示圖。Coin到Coin8依次對應獲得八個硬幣的顯示圖。 22.準星的添加:創建一個empty,添加crosshair腳本,將網上下載的準星貼圖添加進來。 大致的步驟就如上所述。 小組成員:唐智 主要負責部分:武器模塊和esc菜單模塊以及實驗報告的編寫。 武器的部分是由我制作的,相對于我們課堂上制作的火箭筒和步槍,這個項目里面多了reload這個動作,并且是可以主動按r來reload的(課堂上的項目只能打空彈匣來換彈)。 開始時,我在原來的腳本基礎上修改代碼,想把調用動畫的代碼也寫進計算子彈fire和reload的代碼中,但是出現了很多問題:如動畫不能正常播放、或是播放了動畫不開火等。 最后,我將這兩個部分的腳本分開到兩個目標上,解決了這些問題。第二個小問題,就是裝彈后子彈數量沒有實時更新到text里面,但是開火后子彈數量會重新刷新。這個問題通過在reload函數末添加了顯示子彈數的代碼后解決。 這次在原來的游戲基礎上新添加了esc菜單這一功能,腳本使用c++編寫。在操作完后要注意的是需要完成File—buildsetting—add openscenes 這樣才算是完成,因為 Application.LoadLevel(0);這句代碼中的0就是代表著我們add的這個場景位于第一位,這樣restart按鈕才能進入到這個場景的初始階段,達到重新開始的目的。