創作內容

21 GP

【紀錄】純計算的視線阻擋 (失敗 _(┐「﹃゚。)_ 5/5

作者:樂小呈│2020-05-05 17:42:35│巴幣:42│人氣:325

窩失敗了QQ
卡在最後一步

純計算視線檢測,就是沒有用內建Component的意思 (Collider、Raycast
嘗試看看,但失敗ㄌ

我分成幾步來檢測

第一步,檢查個別障礙物的有效線
從光源朝障礙物的頂點發射檢測線
黃線,有效線 => 沒打中任何東西
藍線,有效線 => 直接打中頂點
灰線,無效線 => 打中障礙物的邊


第二步
檢測所有線的阻擋
灰線    => 一切安好
灰線 + 紅點 => 一部份受到阻擋
紅線 + 紅點 => 完全阻擋,可以移除了


然後...
然後就卡住了


射線的判斷都對 (除了順序問題,不難,但我懶得修


我沒辦法寫出最後的判斷
就是有哪個區塊實際被擋住,哪個區塊被光照到

卡在沒辦法判斷這兩種區塊的差別
臨門一腳R...


就這樣吧,就只是個挑戰而已
真的作遊戲也不會這樣算

參考資料

我腳本放這,有興趣的自己載來看看吧
https://github.com/angus945/some-thing (2d Visibility/2D Visibility


引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4772204
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:is 樂小呈|學習紀錄

留言共 7 篇留言

也龍
大佬...

05-05 17:46

樂小呈
失敗了啦,我是廢物嗚嗚05-05 17:53
雨丸✰“ReのLife”★
失敗為成功的第一步

05-05 18:01

樂小呈
謝謝[e3]05-05 18:03
王小明
我覺得那些被完全檔到的射線應該還是要留著?判斷相鄰的射線是否有超過一條是被擋到的(檔到一部分或是完全阻擋都算),如果有的話就是要畫三角型,否則就是完整的扇形。

05-05 18:25

樂小呈
應該不行,因為不是所有情況都會出現完全檔到的射線[e13]05-05 18:34
樂小呈
但還是感謝05-05 18:35
樂小呈
補充ㄍ,紅點、紅線是兩個障礙物的陰影重疊才會出現的05-05 18:41
二律背反の路人冰羽
啊,剛想提就被樓上先說了……不過樓上提的那個應該只要算全被擋的(紅線紅點)就好,被擋一部分的(灰線紅點)應該是列進有效線的那邊

05-05 18:38

樂小呈
一樣阿XD,不是所有情況會出現紅點、線05-05 18:41
樂小呈
紅點、紅線是兩個障礙物的陰影重疊才會出現的05-05 18:41
王小明
你的意思是紅點灰線那張圖是兩個物體有互相干擾到才會發生紅點?那應該跟那張圖無關,是第一張圖的所有線都要留吧?不管兩個物體有沒有互相干擾到都照我上面說的去畫

05-05 18:50

樂小呈
https://i.imgur.com/Jrt8D4G.gif05-05 18:54
樂小呈
對诶...05-05 18:54
樂小呈
wow...05-05 18:54
樂小呈
感謝,明天再修修看[e12][e12][e12][e12]05-05 18:55
矮鵝
感覺是要用虛幻引擎才會用到的東西,我亂猜的我沒用過~~~
https://truth.bahamut.com.tw/s01/201911/4e3eb1c83a9c6204fd1cdcff2206e831.JPG?w=300

05-05 20:41

樂小呈
84,就只是簡單的視線檢測而已,就想成是玩家看的到哪部分,哪部分又被擋住05-05 21:13
ays.
我不太確定你的問題是不是 "哪個區塊實際被擋住,哪個區塊被光照到", 我猜你是想要畫類似影子的感覺,所以想要知道圓內哪些要畫影子?

如果是這樣的話,妳可以對每一個方向射長度為光半徑的射線做相交判斷,如果最後射線停留的位置距離原始起點的長度 = 光半徑, 代表最後射到的點不是屬於被擋住的區塊

如果小於光的半徑(假設最後射線的長度為t),就代表那條方向上長度t之前的點都屬於沒被擋住的區塊,大於 t 之後的都是屬於被擋住的區塊

05-05 21:06

樂小呈
對,正常(做遊戲的話)來說是會這樣做,用collder和raycast就好05-05 21:16
樂小呈
我做這種比較偏向是訓練邏輯吧,用純數學去算的[e19]05-05 21:16
我要留言提醒:您尚未登入,請先登入再留言

21喜歡★angus945 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:【通關】Slay the... 後一篇:【通關】Bad Nort...

追蹤私訊切換新版閱覽

作品資料夾

ShuLongQinHu給大家
小屋新增彩色插圖~大正浪漫,和服義大利+日本(APH)歡迎來看看看更多我要大聲說13小時前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】