Kobayashimarucommander developmentlog v0.1.0 - NDark/KobayashiMaruCommanderOS GitHub Wiki
開發日誌
KobayashiMaruCommander 小林丸指揮官 v0.1.0 開發日誌
- 設計草稿 20120914
- 完成背景圖的擺放與攝影機位置 20120915
- 完成船隻(主角)及攝影機追跡動作 20120916
- 製作主角的GameObject
- 製作攝影機跟隨主角的script
- 取得主角的貼圖及擺放正確的朝向(朝向x軸)
很奇怪貼圖要朝向螢幕左方,貼圖才會朝向x軸.
- 製作主角的資料結構.客製化數值等到武器系統製作實再建立.
- 完成船隻的移動,以及控制 20120917
- 補充船隻資料中的速度參數
- 功能(script)依照時間更新船隻位置(移動)
- 後門功能,可以決定隨時間更新或是一次更新多少時間
Debug_IfUpdateWithTimer
Debug_UpdateCustomElapsedSec
- 後門功能,可以決定要更新哪些參數
Debug_IfUpdatePositon
- 如何將所有需要移動的船隻註冊到更新器上
船隻初始化時註冊物件名字(因此將來產生船隻時名稱須特別注意)
- 完成船隻的移動範圍 20120918
- 由BackgroundObject來計算長寬參數
- 如果船隻的位置有可能移動到限度外就不套用該次移動.
- 完成船隻的節流閥控制及參數 20120919
- 目前使用脈衝比例/目前脈衝造成的速度/船隻最高脈衝速度。
- 完成簡易的船隻資訊顯示 20120919
- 船隻的方向
- 目前脈衝造成的速度
- 目前使用脈衝比例
- 完成靶船的產生 20120920
- 關卡初始化時使用xml或excel的方式來產生樣本ship data資料
- 船艦產生時再使用資料複製的方式.
- 名稱須特別注意不能重複.
- 註冊到global singleton中
- 製作船隻樣板物件(prefab): UnitRock01
使用貼圖 RockTxture01
使用材質 RockMaterial01
- 關卡配置
目的是為了未來開發方便,不要硬寫太多程式,也在此時思考 單關卡 多關卡 換關卡的問題.
- 關卡讀取的流程如下
- 由介面或是場景跳躍來決定LevelGenerator::levelIndex
- 呼叫關卡讀取(或是場景切換時初始化第一次呼叫關卡索引)
- 由LevelGenerator::levelIndex找到LevelGenerator::levelTable[ levelIndex ]的關卡路徑
- 再由關卡路徑讀入指定關卡
- 製作船隻樣板資料設計
- 關卡檔設計與關卡讀檔(script): LevelGenerator
- 讀入船隻樣版資料
- 船隻資料樣本的資料容器
Dictionary< string , UnitTemplateData > levelUnitTemplateTable
- 讀入關卡清單 20120920
- 關卡檔清單(參數): 關卡檔路徑 設計關卡清單 20120920
- 使用xml檔案
- 清單關卡檔名
- 關卡索引(參數)
- 讀入指定關卡配置資料 20120921
- 設計關卡配置資料 20120921
- 關卡名稱
- 單位
- 單位名稱
- 單位樣板名稱
- 位置(以[縮放後]場景座標系為準)
- 旋轉(對三軸轉)
- 關卡配置的資料容器 20120922 (周六)
- 船隻配置 List levelUnitInitializationTable
- 增加一般單位的註冊script 未來要刪除的時候有用
- 目前先把主角單位與一般單位的註冊分開 因為主角的script也許是比較不同的
- 產生各船隻
- 依照船隻的名稱instance船隻 20120921
- 向關卡配置要該船的擺放位置 20120921
- 向船隻樣板資料取得傳入ship參數
- 完成目標的選定及目標框選的介面 20120922
- 目標框介面的製作
GUI_Selection
pixel inset 是在中央 (以此例 -32 -32)
寬度與高度應該隨著船隻變大小目前船隻是10x10 看起來 64*64 先寫死
- 目標框的選定與取消方式
- 滑鼠點擊的判定 (主角控制)
- 由於OnMouseDown() / OnMouseUp() 只有在綁上collider的物件 的script才會觸發
因此船隻(GameObject)就必須多綁上一個Collider
或是
在底層Plane的地方加裝一個判斷點選的控制. scrip ClickOnThisCollider
- click的界限值 (參數) : clickThreasholdInClick
- 目前目標框的資料容器 MainCharacterSelectionInfo in script GUIUpdate
- valid
- time 紀錄啟動時間
- 螢幕位置 : 依照船隻的位置計算螢幕位置(viewport pos)
- 目標名稱
-
是否要記 目標指標 ? 好處:找一次,壞處指標有可能壞掉. 暫時不記
- 依照資料容器顯示更新目前的所有目標框 (更新)
假如有目標名稱就檢查後更新
沒有就以目前位置更新
- 製作單位的血量參數 20120922
- 參數檔案中的資料,parse
- 完成目標選定後的戰略介面(決定攻擊元件)
- 介面
- 光炮 暫時只有一門 未來每個武器會在物件上綁上發射台物件.每個發射台物件對應一個武器系統.
- 光雷 暫時不能使用
- 使用光炮與光雷的切換
- 光炮 20120922
- 光炮的特效
- 特效物件
PhaserBeamMaterial
PhasorBeamTexture
- 發射光炮 script UnitWeaponSystem
- 控制 檢查按鈕的按下
- 依照按下的按鈕 找到 正確的武器名稱(Phaser)
- 依照武器名稱 向 ShipData 找到正確的武器部件(Phaser01)
- 向GUI系統找到主角選擇框的真確性
- 向武器部件 的 武器系統要求發射 傳入 武器與目標名稱
- 武器系統控制 光炮物件動畫(Phaser01Beam) 的產生與消滅
- 擊中特效 20120923
- 使用粒子特效
一個武器配一個例子特效
一個目標物件被一個武器特效擊中時配一個受傷特效
- 被擊中時被別人呼叫 script UnitDamageSystem
- 關閉 武器系統連帶關閉
- 關閉 當指定特效時間結束
- 損傷判定 20120923
- 瞬間開火的瞄準點會隨機計算來做偏移
- 並且依照隨機計算之後的偏移量來計算扣血,公式如下
武器標準殺傷力(參數)
武器精確度(0.9指的是最多會導致殺傷力為0.9)
武器最大偏移值(以此例0.1)
最大偏移座標差值(參數)
隨機量(0~100,0表示無偏移100表示完全偏移)
依照隨機量造成的殺傷力=武器標準殺傷力*(武器精確度+(最大隨機量-隨機量)/最大隨機量*最大偏移值)
依照隨機量造成的位置偏移=最大偏移座標差值*(隨機量-一半的最大隨機量)/最大隨機量
- 扣到零會移除該物件
- 整理攻擊受傷的流程文件 請參考 攻擊與被擊中 20120926
- 死亡特效 20120927
讓物件的消失是有特效的。
物件會有狀態,取得物件後要先去檢查狀態,如果已經進入死亡中,則大部分的互動會結束,但是物件仍存在。
死亡中會持續一段時間,直到死亡特效播放完畢,物件才會進入已死亡,並移除物件。
- 製作另一艘船 20120929
- 修改速度的更新(從主角改為泛型)
- 護盾特效 20120929
當船隻被擊中時,開啟護盾的特效物件,隨著攻擊結束而關閉。
暫時不做護盾的扣抵。
- 先暫時使用 UnitDamageSystem 裡面寫死另外的特效物件
- 哪些要有護盾哪些要有特效必須另外定義
- 血量條 20120929
請參照 script GUI_Ship_Update
不能裝在船隻的child上因為會被船隻的旋轉影響
- 攻擊數值 20120930
- 每次製造傷害時更新
- 在UnitDamageSystem中寫死一個UIText物件
- 慢慢往上飄
- 一段時間後消失
- 不能點到自己 20120930
- 將船隻的轉向統一對準z軸(forward) 20120930
- 船隻貼圖統一朝向下方
- 完成一個敵人會攻擊玩家 製作簡單的船隻AI 20120930
- 船隻樣本設定檔中判斷是否要開啟此部件
- Prefab中插入此部件
- 朝向玩家(MainCharacter)
- 實做碰到敵人玩家損血 20120930
- 製作攝影機震動特效
- 完成失敗判定 20120930
- 點選失敗判定圖會重新開始
- 攝影機震動效果只有在主角存活才會使用. 20120930
- 完成第一個基本關卡 20121001
- 多設計幾個物件
- 新增玩家的初始位置 20121002
object: MainCharacterStartPosition
- 新增石頭的AI 20121002
- AI_RandomMove
時間愈設5秒,但會隨機增減-0.5~0.5
隨機方向 x , z 軸
速度 1.0
- 新增背景音樂 20121002
- 死掉時不能控制船隻 20121002
- 在周圍做星雲的物件當作場景邊緣 20121003
- 直接使用大片的物件來遮蔽
- 未來製作場景必須注意到背景不等於場景的務問題
- 敵人的出現 讓敵人的出現是隨時間 20121003
- 移除掉預設的敵人
- 新增幾個dummy game object
- 隨機決定重生點
- 基本版遊戲教學 20121005
- 航向控制
使用上下按鈕加減速
使用左右按鈕轉向
- 戰術瞄準與發射
使用滑鼠點選目標
使用1鍵發射光炮
- 第一個敵人出現的訊息
艦長,長程掃瞄器發現多艘克林貢船艦朝向我們而來,
他們都沒有武器,但是航向卻設定為撞擊路線。
- 音效 : red alert 20121005
- 音效 : 光炮 20121005
- 調整事件的時間序 20121005
- 調整船艦參數 20121005
- 解決重置關卡的時間問題 20121006
⚠️ **GitHub.com Fallback** ⚠️