当たり判定を作りたい

この画像の、黒線で囲った部分にいるエンティティを検知する方法を教えてほしいです。
14 Replies
mirageeeeeeeeeeeeeeeeeeeeeeeeeee
具体的な数値が欲しいです
わし
わし11mo ago
withinらしい
るび
るびOP11mo ago
プレイヤーの前、右前、左前にいるエンティティを取得したいです
mirageeeeeeeeeeeeeeeeeeeeeeeeeee
欲しいのは数字です 何マス前なのか、高さはいくつなのか、横幅はどれくらいなのか
るび
るびOP11mo ago
1マス前 ^ ^ ^1 1マス前1マス左 ^-1 ^ ^1 1マス前1マス右 ^1 ^ ^1 ってことです。すいません 高さは2blockで
mirageeeeeeeeeeeeeeeeeeeeeeeeeee
set {_loc1} to location forward and left player
set {_loc2} to location forward and right player's head
loop all entities in radius 2 around player:
location of loop-entity is within {_loc1} and {_loc2}
#コード
set {_loc1} to location forward and left player
set {_loc2} to location forward and right player's head
loop all entities in radius 2 around player:
location of loop-entity is within {_loc1} and {_loc2}
#コード
https://skripthub.net/docs/?id=6824
set {_vecForward} to vector from player to location forward player normalized
loop all entities in radius 2 around player:
set {_vecEntity} to vector from player to loop-entity normalized
set {_dot} to {_vecForward} dot {_vecEntity}
{_dot} > 0.85
#コード
set {_vecForward} to vector from player to location forward player normalized
loop all entities in radius 2 around player:
set {_vecEntity} to vector from player to loop-entity normalized
set {_dot} to {_vecForward} dot {_vecEntity}
{_dot} > 0.85
#コード
Skript Hub - Documentation
Within Locations (Condition) - SkBee
Check if a location is within 2 other locations.
mirageeeeeeeeeeeeeeeeeeeeeeeeeee
この2通りの方法思いついたんですけど、1つ目の方は使ったことない構文なので斜め向いてる時にしっかり動くか保証できないです 2つ目の方法はプレイヤーの正面のベクトルとプレイヤーからエンティティへのベクトルの類似度から調べてみるって試みなんですけど 類似度({_dot})が-1〜1の範囲で出てくるので、その数値をいい感じに調節する必要があるのと、多分精度カスです 数値を調節するってのは0.85の部分を-1から1の範囲で動かすってことです ベクトル学ばれてたら内積やったと思うんですけど、今回取得してるベクトルの長さは1に固定されてるので正面からの角度に依存して、-1<=cosθ<=1で動きます
るび
るびOP11mo ago
すみません頭悪くて何もわからないので頭よくなったら出直します ありがとうございました~
mirageeeeeeeeeeeeeeeeeeeeeeeeeee
よし 2つ目は無視しよう 1つ目で行くんや
何か
何か11mo ago
何も分かってないんだから一つ目も分かってないですよみらげさん
るび
るびOP11mo ago
いや1つ目は分かってます....
mirageeeeeeeeeeeeeeeeeeeeeeeeeee
酷いですよあなた
___
___11mo ago
function atari_hantei(player: player) :: entity:
set {playerNoIchi} to location of block at {_player}
set {xZahyou} to x-coordinate of {playerNoIchi}
set {yZahyou} to y-coordinate of {playerNoIchi} + 2
set {zZahyou} to z-coordinate of {playerNoIchi}
set {1masumae} to location({xZahyou}, {yZahyou}, {zZahyou} + 1)
set {1masumae1masuhidari} to location({xZahyou} - 1, {yZahyou}, {zZahyou} + 1)
set {1masumae1masumigi} to location({xZahyou} + 1, {yZahyou}, {zZahyou} + 1)
loop all entities:
set {entityNoIchi} to location of block at loop-entity
set {entityNoMeNoIchi} to location of block at eye location of loop-entity
if {entityNoMeNoIchi} is {1masumae}:
return loop-entity
if {entityNoMeNoIchi} is {1masumae1masuhidari}:
return loop-entity
if {entityNoMeNoIchi} is {1masumae1masumigi}:
return loop-entity
if {entityNoIchi} is {1masumae}:
return loop-entity
if {entityNoIchi} is {1masumae1masuhidari}:
return loop-entity
if {entityNoIchi} is {1masumae1masumigi}:
return loop-entity
function atari_hantei(player: player) :: entity:
set {playerNoIchi} to location of block at {_player}
set {xZahyou} to x-coordinate of {playerNoIchi}
set {yZahyou} to y-coordinate of {playerNoIchi} + 2
set {zZahyou} to z-coordinate of {playerNoIchi}
set {1masumae} to location({xZahyou}, {yZahyou}, {zZahyou} + 1)
set {1masumae1masuhidari} to location({xZahyou} - 1, {yZahyou}, {zZahyou} + 1)
set {1masumae1masumigi} to location({xZahyou} + 1, {yZahyou}, {zZahyou} + 1)
loop all entities:
set {entityNoIchi} to location of block at loop-entity
set {entityNoMeNoIchi} to location of block at eye location of loop-entity
if {entityNoMeNoIchi} is {1masumae}:
return loop-entity
if {entityNoMeNoIchi} is {1masumae1masuhidari}:
return loop-entity
if {entityNoMeNoIchi} is {1masumae1masumigi}:
return loop-entity
if {entityNoIchi} is {1masumae}:
return loop-entity
if {entityNoIchi} is {1masumae1masuhidari}:
return loop-entity
if {entityNoIchi} is {1masumae1masumigi}:
return loop-entity
tanoKun
tanoKun11mo ago
江口 さすがにきついよ それは 今後
Want results from more Discord servers?
Add your server