Skip to content

Controlpanelprocess

NDark edited this page Feb 15, 2013 · 3 revisions

{{}}

ControlPanel的運作

說明

ControlPanel

  1. 為了提供簡易不使用鍵盤的開火方式,必須提供一個GUI介面。
  2. 介面提供啟動與關閉
  3. 當目標已經被選擇
    1. 點選控制面板只是將選擇功能切換為該功能,開火仍必須點選敵艦。
    2. 切換為只訂功能後的滑鼠游標會切換為指定圖案,此時點選敵艦都是嘗試開火。
    3. 再次點選控制面板就會取消功能,滑鼠游標會消失(不顯示)。此時點選敵艦就是單純的選擇。
  4. UnActive 灰色未啟動的面版。
  5. Active 彩色已啟動的面版。

開火流程關係圖

控制面板 切換功能 點擊敵人 玩家開火 武器系統 部件資料
鍵盤開火 武器系統 部件資料
滾輪 切換功能 鍵盤開火 武器系統 部件資料
切換廣域開火面板 點選廣域開火面版 切換功能 有敵人的情形下 特殊運算之多重武器系統 部件資料
目前處於廣域開火面版 鍵盤開火 特殊運算之多重武器系統 部件資料

沿革

  1. 第一版 點選玩家船艦後開啟
  2. 第二版 滑鼠移動到下方後開啟
  3. 第三版 長駐不關閉
  4. 第四版 根據玩家船隻的裝備來顯示
  5. 第五版 增加一個面版:廣域開火模式,此面板開啟時發射武器都會變成廣域開火,而不是原本的武器。

參考資料

  1. 攻擊與被擊中
  2. GUIUpdate.cs 主要GUI更新
  3. GUI_MouseCursor.cs
  4. ClickOnThisCollider.cs
  5. MainCharacterController.cs
  6. 功能清單
    1. ControlPanelActive.cs
    2. ControlPanelUnActive.cs
  7. ConstName.cs

內容

初始化

  1. 在 MainCharacterController::CheckControlPanelsUnActive() 中檢查所有的面版是否應該啟動 也就是
    1. 光炮面版(grey)
    2. 光雷面版(grey)
    3. 牽引光束面版(grey)
    4. CheckControlPanelsUnActive() 會依照傳入的 功能或武器 來轉換為
      部件的關鍵字
      並檢查船隻是否有此部件
      如果有才開啟控制面版

開火前的檢查

  1. 使用鍵盤開火時,會自動切換控制面版開啟指定功能。
  2. 因此在開啟前必須同樣利用 CheckControlPanelsUnActive() 作檢查,才能切換控制面板的顯示。
  3. 切換面板的顯示是呼叫函式 SwitchControlMode() 關閉其他的面版,只開啟指定的面版。

滑鼠觸發控制面板流程

  1. 玩家滑鼠移動到 任一顯示中的 Control Panel UnActive 就會接著觸發 ControlPanelUnActive::OnMouseOver()
  2. 其中會啟動(一次) 對應的 Control Panel Active 物件顯示
    1. 由於 Control Panel Active 物件是掛在 UnActive 物件下 所以找尋一次即可
  3. 在 Control Panel Active 顯示的情形下
    1. 在沒有觸發(點擊)功能的情形下 玩家滑鼠移開時就會關閉 Control Panel Active 的顯示
    2. 由於 OnMouseExit 事件有時候會lost掉 (因為我們用了兩個GUITexture)
      所以我們加上啟動(ready)後 檢查滑鼠是否離開 , 並主動關閉的功能
  4. 在 Control Panel Active 顯示的情形下
    1. 滑鼠單擊 Control Panel Active 就會呼叫 MainCharacterController::SwitchControlMode()
    2. 切換玩家的功能選項到指定選項(其中會讓control panel正確運作)
  5. Control Panel Active 在點擊後 會觸發 m_CloseActive 到Active狀態讓此物件不會因為滑鼠離開就消逝

滑鼠游標之於控制面版的流程

  1. GUI_MouseCursor.cs 中 Update() 會依照
    滑鼠位置
    是否有指到單位
    以及目前開啟玩家功能項目來
    1. 開關滑鼠游標的顯示
    2. 讀取正確的貼圖進來
    3. 是否要縮放動畫

滑鼠點選單位並開火流程

  1. 當玩家的功能項啟動時
    1. 點選到單位 ClickOnUnit()
    2. 內部會依照功能項直接對該單位發動武器/功能
    3. 若要關閉功能,再點一次顯示中的 ControlPanel 使其關閉 回到none。

除了滑鼠點選之外 切換功能的方法

  1. 使用滾輪切換其他功能
  2. 按下鍵盤指定開火鍵

ConstName

  1. ControlPanelActive/UnActive 轉換公式 FindControlPanelFunction()
  2. 滑鼠遊標貼圖路徑 GUIMouseCursor_PhaserTexturePath
  3. 滑鼠遊標貼圖路徑 GUIMouseCursor_TorpedoTexturePath
  4. 滑鼠遊標貼圖路徑 GUIMouseCursor_TrakorBeamTexturePath
Clone this wiki locally