Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

✨ 利用方向鍵進行自由導航或依有向邊進行有向圖導航 #235

Open
VerechoTJI opened this issue Jan 3, 2025 · 0 comments

Comments

@VerechoTJI
Copy link

VerechoTJI commented Jan 3, 2025

功能描述

利用方向鍵在節點間自由移動或沿圖中的有向邊進行移動。

其他信息

欲解決問題

目前使用方向鍵進行移動的方式有些不順手。

  1. 目前使用方向鍵會移動至「對應方向上投影距離最近」且「與目前節點相接」的「最上方」節點,所以會出現某些節點難以到達,或是被屏蔽的情況。
  2. 因目前移動時不考慮邊的方向性,若誤以箭頭方向做參考,容易出現按下方向鍵後,跳至擺得較近地預期外節點上。

解決方案

將依賴方向和依賴邊的移動方式拆分成不同模式:

  • 自由導航模式:使用方向鍵會移動至該方向上歐式距離最近的節點,無視相連的邊(也許透過類似Raycast的東西?)。
  • 有向圖導航:利用試選取光標操作節點狀態來導航,而方向鍵分別對應一個光標的操作。
    節點狀態:待選節點、已選節點、試選節點、無關節點
    向上鍵:取消試選取
    向下鍵:試選取/選取節點
    向左鍵:選取順時針的鄰節點(相對於已選取節點)
    向右鍵:選取逆時針的鄰節點(相對於已選取節點)
    狀態機:
    Image
    例子:
    用來執行移動的示例圖如下:
    未選取狀態下所有節點都是「待選節點」
    Image
    選擇中央的節點後,將其標為「已選節點」,此時再按下「向下鍵」可進行節點的試選取。
    Image
    「試選節點」是「已選節點」的子節點,此時使用左右鍵可依順逆時針在「已選節點」的子節點間切換。
    Image
    Image
    在試選到想要前往的節點後,按下「向下鍵」即會將其設為新的「已選節點」,而「試選節點」也應自動更新,以方便繼續移動。
    Image
    其中「無關節點」即是與當前節點不相接的節點。

附件

No response

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: 待讨论
Development

No branches or pull requests

1 participant