【游戏开发引擎】 实验3:Captain Blaster 2D 滚动射击游戏
文章目錄
- 前言
- 一、實驗目的
- 二、實驗環境
- 三、實驗內容
- 1.游戲世界
- 2.攝像機
- 3.背景
- 4.游戲實體
- 玩家
- 流星
- 子彈
- 觸發器
- 5.游戲控制
- 流星腳本
- 流星再生
- 觸發器腳本
- 玩家腳本
- 子彈腳本
- 6.游戲測試
- 總結
前言
??讓我們制作一款游戲!在本實驗中,將制作一款名稱為 Captain Blaster 的 2D 滾動射擊游戲。你首先將設計游戲的多個元素。接著,將開始構建滾動背景。一旦建立了運動的理念,就可以開始構建多個游戲實體。在完成了實體之后,將構造控制并使項目游戲化。在本實驗最后,將分析游戲,并確定一些可以改進的地方。
一、實驗目的
二、實驗環境
三、實驗內容
??制作一款名稱為Captain Blaster的2D滾動射擊游戲。你首先將設計游戲的多個元素。接著,將開始構建滾動背景。一旦建立了運動的理念,就可以開始構建多個游戲實體。在完成了實體之后,將構造控制并使項目游戲化。在本實驗最后,將分析游戲,并確定一些可以改進的地方。
1.游戲世界
(1)在名為 Captain Blaster 的文件夾中創建一個新項目,并向場景中添加一個定向燈光。
(2)創建一個 Scenes 文件夾,并把場景另存為 Main。
(3)在 Game 視圖中,把屏幕高寬比改為 5:4
2.攝像機
(1)把攝像機定位于(0, 0, ?10)處,并且不進行旋轉。
(2)把 Projection 屬性改為 Orthographic。
(3)把 Size 屬性設置為 6,查看攝像機的屬性列表。
3.背景
(1)向場景中添加一個立方體,把它重命名為 Background,并把它置于(0, 0, 0)處。然后立方體縮放為(15, 15, .1)。
(2)在 Project 視圖中創建一個名為 Textures 的新文件夾。在用于第 15 章(Hour 15)的本書配套資源中找到 Star_Sky.png 文件,并把它拖到新的 Textures 文件夾中。從 Project 視圖中,把 Star_Sky 紋理拖到背景上。
(3)在 Project 視圖中創建一個名為 Scripts 的新文件夾。然后在該文件夾中創建一個名為
BackgroundScript 的新腳本,并把它拖到背景立方體上。
BackgroundScript代碼如下:
(4)復制背景立方體,并把它放在(0, 15, 0)處。
4.游戲實體
玩家
(1)創建一個新文件夾,并把它命名為 Meshes。將Space Shooter的文件夾拖到新創建的Meshes文件夾中(以導入它)。
(2)在 Meshes 文件夾下,現在應該會有一個 Space Shooter 文件夾。找到其中的Space_Shooter.fbx 文件,并在編輯器中把比例因子改為 0.09。一定要單擊Inspector 視圖底部的 Apply 按鈕。
(3)從 Project 視圖中單擊 Space_Shooter.fbx,并把它拖到 Scene 視圖中。注意它面朝錯誤的方向。把它定位在(0, ?4, ?5)處,并把旋轉角度設置為(270, 0, 0)。
(4)在 Space Shooter 文件夾下找到 Textures 文件夾,然后單擊 1K_BodyTXTR.jpg 文件,并將其拖到 Scene 視圖中的宇宙飛船模型上。
(5)給宇宙飛船添加一個膠囊碰撞器。選中 Is Trigger 屬性,然后把半徑設置為 0.62,把高度設置為 1.71,并把方向設置為 Z-Axis
流星
(1)將Meteor1 文件夾拖到創建的 Meshes 文件夾中。
(2)在新的 Meteor1 文件夾中找到 Meteor1.fbx 文件,然后在 Inspector 視圖中把比例因子改為 0.5。一定要單擊 Inspector 視圖底部的 Apply 按鈕。
(3)把 Meteor1.fbx 文件拖到 Scene 視圖中。把它置于(0, 0, ?5)處,然后把旋轉角度設置為(0, 0, 0),并把縮放比例設置為(1, 1, 1)(網格在導入時已經應用了某種旋轉和縮放效果)。
(4)在 Textures 文件夾中,找到 Meteor1_TXTR.png 文件,并把它拖到場景中的流星上。
(5)給流星添加一個剛體,并且取消選中 Use Gravity 屬性。給流星也添加一個膠囊碰撞器。
(6)創建一個名為 Prefabs 的新文件夾,并在該文件夾中創建一個名為 Meteor 的新預設。從 Hierarchy 視圖中單擊 Meteor1 對象,并將其拖到新創建的預設上。然后從場景中刪除Meteor1 對象。
子彈
(1)向場景中添加一個膠囊,把它定位于(0, 0, 0)處,并把縮放比例設置為(.1, .1, .1)。給膠囊添加一個剛體,并取消選中 Use Gravity 屬性。
(2)如果還沒有 Materials 文件夾,就創建該文件夾,并在其中創建一種名為 BulletMaterial的新材質。給該材質提供明亮的綠色,并把它應用于子彈。
(3)創建一個名為 Bullet 的新預設,然后單擊膠囊并把它拖到子彈預設上。現在從場景中刪除膠囊。
觸發器
(1)向場景中添加一個立方體,并把它命名為 Trigger。把該立方體定位在(0, ?9, ?5)處,并把縮放比例設置為(15, 1, 1)。
(2)在 Inspector 視圖中,確保選中 Box Collider 組件的 Is Trigger 屬性。
(3)復制觸發器,并把新的觸發器放在(0, 9, ?5)處。
5.游戲控制
??創建一個空的游戲對象,并把它命名為 GameControl。創建一個名為 GameControlScript 的新腳本,并把它附加到游戲控制對象上。
GameControlScript代碼如下:
流星腳本
??創建一個新腳本,并把它命名為 MeteorScript。在 Prefabs 文件夾中,選擇 Meteor 預設。在 Inspector 視圖中,找到AddComponent 按鈕。然后單擊Add Component > Scripts > Meteor Script 命令。
MeteorScript代碼如下:
流星再生
??創建一個新的空游戲對象,把該對象重命名為 MeteorSpawn,并將其置于(0, 7, ?5)處。然后創建一個名為 MeteorSpawnScript 的新腳本,并把它放在流星再生對象上。在 Unity 編輯器中,從 Project 視圖中單擊 Meteor 預設,并將其拖到流星再生對象的Meteor Spawn Script 組件的 Meteor 屬性上。
MeteorSpawnScript代碼如下:
觸發器腳本
??創建一個名為 TriggerScript 的新腳本,并把它同時附加到你在前面創建的上下兩個觸發器對象上。
TriggerScript代碼如下:
玩家腳本
??創建一個名為 PlayerScript 的新腳本,并把它附加到宇宙飛船上。
PlayerScript代碼如下:
子彈腳本
??創建一個名為 BulletScript 的新腳本,并把它添加給子彈預設。
BulletScript代碼如下:
6.游戲測試
總結
滾動背景:
??首先來講述一下原理,準備兩張連續的圖片,我們使用正交投影的攝像機對準第一張背景,然后使用腳本讓圖片自上向下開始移動,當第一張圖片移出攝像機的視野時,第二張圖片立即接在第一張圖的后面,繼續向下移動,而當第二張圖片移出攝像機視野時,第一張圖片會立即接在第二張圖片的后面,如此周而復始,就實現了連續滾動背景。
預設體:
??prefabs 預設體是一個游戲物體及其組件的集合。
??Unity prefab系統將游戲物體所有的組件,屬性值和子物體作為一個可重復使用的資源,并且允許你新建,配置,存儲這樣一個游戲物體。預制資產充當模板,您可以在該模板中在場景中創建新的預制實例。
??prefabs一般用在如非玩家角色(NPC),場景中的多個位置使用道具的或項目中的多個場景中使用的道具。
??設置預設體和直接復制游戲物體的區別:
??1、復制要求場景中先存在被復制的游戲對象,而預設體僅僅需要提前制作好預設體,場景中有無該游戲物體不重要。
??2、復制后的游戲物體不會隨著被復制物體的改變而改變,兩者是相互獨立,不受影響的,而預設體實例化的游戲物體會隨著預設體的改變而改變,在一定條件下可以對預設體進行改變。
??對Prefab所做的任何編輯都會自動反映在它的實例中,使您可以輕松地對整個項目進行廣泛的更改,而無需對資產的每個副本重復進行相同的編輯。但對于實例,我們也可以對其進行覆蓋,
??使用Prefabs,可以在運行時實例化開始時不存在于場景中GameObjects, - 例如,在游戲過程中的恰當時刻出現的電,特效,射彈或NPC。
??碰撞體、剛體和觸發器:
??碰撞體 (Collider) 與剛體 (Rigidbody) 結合使用可使 Unity 中的物理變得生動。剛體 (Rigidbody) 使對象可以受物理控制,而碰撞體 (Collider) 使對象可以相互碰撞。碰撞體 (Collider) 必須獨立于剛體 (Rigidbody) 添加到對象。碰撞體 (Collider) 并不一定需要附加剛體 (Rigidbody),但是必須剛體 (Rigidbody) 才能使對象由于碰撞而移動。
??當兩個碰撞體 (Collider) 之間發生碰撞時并且如果其中至少一個附加了剛體 (Rigidbody),會將三條碰撞消息向外發送給附加到它們的對象。這些事件可以在腳本中進行處理,使您可以在使用或不使用內置 NVIDIA PhysX 引擎的情況下創建獨特行為。
??使用碰撞體 (Collider) 的備選方法是將其作為觸發器 (Trigger),只需在檢視視圖(Inspector) 中選中“為觸發器”(IsTrigger) 屬性復選框即可。觸發器 (Trigger) 實際上會被物理引擎忽略,并具有一組獨有的三條觸發器 (Trigger) 消息,這些消息會在與觸發器 (Trigger) 發生碰撞時向外發送。觸發器 (Trigger) 可用于觸發游戲中的其他事件,如劇情畫面、自動門打開、顯示輔導消息等。
??在本實驗中,我制作了 Captain Blaster 游戲。首先設計了游戲元素,接著構建了游戲世界。構造了垂直滾動的背景,并使之運動起來。接下來構建了多個游戲實體,并通過編寫腳本和控制對象添加了交互性。最后檢查了游戲,并且探索了一些改進的方法。
總結
以上是生活随笔為你收集整理的【游戏开发引擎】 实验3:Captain Blaster 2D 滚动射击游戏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: interactive governor
- 下一篇: python—文件处理