-
Notifications
You must be signed in to change notification settings - Fork 1
Controlpanelprocess
NDark edited this page Feb 15, 2013
·
3 revisions
{{}}
ControlPanel
- 為了提供簡易不使用鍵盤的開火方式,必須提供一個GUI介面。
- 介面提供啟動與關閉
- 當目標已經被選擇
- 點選控制面板只是將選擇功能切換為該功能,開火仍必須點選敵艦。
- 切換為只訂功能後的滑鼠游標會切換為指定圖案,此時點選敵艦都是嘗試開火。
- 再次點選控制面板就會取消功能,滑鼠游標會消失(不顯示)。此時點選敵艦就是單純的選擇。
- UnActive 灰色未啟動的面版。
- Active 彩色已啟動的面版。
控制面板 | 切換功能 | 點擊敵人 | 玩家開火 | 武器系統 | 部件資料 | |
鍵盤開火 | 武器系統 | 部件資料 | ||||
滾輪 | 切換功能 | 鍵盤開火 | 武器系統 | 部件資料 | ||
切換廣域開火面板 | 點選廣域開火面版 | 切換功能 | 有敵人的情形下 | 特殊運算之多重武器系統 | 部件資料 | |
目前處於廣域開火面版 | 鍵盤開火 | 特殊運算之多重武器系統 | 部件資料 |
- 第一版 點選玩家船艦後開啟
- 第二版 滑鼠移動到下方後開啟
- 第三版 長駐不關閉
- 第四版 根據玩家船隻的裝備來顯示
- 第五版 增加一個面版:廣域開火模式,此面板開啟時發射武器都會變成廣域開火,而不是原本的武器。
- 攻擊與被擊中
-
GUIUpdate.cs主要GUI更新 - GUI_MouseCursor.cs
- ClickOnThisCollider.cs
- MainCharacterController.cs
-
功能清單
- ControlPanelActive.cs
- ControlPanelUnActive.cs
- ConstName.cs
- 在 MainCharacterController::CheckControlPanelsUnActive() 中檢查所有的面版是否應該啟動 也就是
- 光炮面版(grey)
- 光雷面版(grey)
- 牽引光束面版(grey)
- CheckControlPanelsUnActive() 會依照傳入的 功能或武器 來轉換為
部件的關鍵字
並檢查船隻是否有此部件
如果有才開啟控制面版
- 使用鍵盤開火時,會自動切換控制面版開啟指定功能。
- 因此在開啟前必須同樣利用 CheckControlPanelsUnActive() 作檢查,才能切換控制面板的顯示。
- 切換面板的顯示是呼叫函式 SwitchControlMode() 關閉其他的面版,只開啟指定的面版。
- 玩家滑鼠移動到 任一顯示中的 Control Panel UnActive 就會接著觸發 ControlPanelUnActive::OnMouseOver()
- 其中會啟動(一次) 對應的 Control Panel Active 物件顯示
- 由於 Control Panel Active 物件是掛在 UnActive 物件下 所以找尋一次即可
- 在 Control Panel Active 顯示的情形下
- 在沒有觸發(點擊)功能的情形下 玩家滑鼠移開時就會關閉 Control Panel Active 的顯示
- 由於 OnMouseExit 事件有時候會lost掉 (因為我們用了兩個GUITexture)
所以我們加上啟動(ready)後 檢查滑鼠是否離開 , 並主動關閉的功能
- 在 Control Panel Active 顯示的情形下
- 滑鼠單擊 Control Panel Active 就會呼叫 MainCharacterController::SwitchControlMode()
- 切換玩家的功能選項到指定選項(其中會讓control panel正確運作)
- Control Panel Active 在點擊後 會觸發 m_CloseActive 到Active狀態讓此物件不會因為滑鼠離開就消逝
- GUI_MouseCursor.cs 中 Update() 會依照
滑鼠位置
是否有指到單位
以及目前開啟玩家功能項目來- 開關滑鼠游標的顯示
- 讀取正確的貼圖進來
- 是否要縮放動畫
- 當玩家的功能項啟動時
- 點選到單位 ClickOnUnit()
- 內部會依照功能項直接對該單位發動武器/功能
- 若要關閉功能,再點一次顯示中的 ControlPanel 使其關閉 回到none。
- 使用滾輪切換其他功能
- 按下鍵盤指定開火鍵
- ControlPanelActive/UnActive 轉換公式 FindControlPanelFunction()
- 滑鼠遊標貼圖路徑 GUIMouseCursor_PhaserTexturePath
- 滑鼠遊標貼圖路徑 GUIMouseCursor_TorpedoTexturePath
- 滑鼠遊標貼圖路徑 GUIMouseCursor_TrakorBeamTexturePath