개인 자료란 (JE)

  서버 커뮤니티

Profile Terry1790001 대표칭호 없음
Profile

질문하기 스크립트

forward를하다가 블록을 감지했을때

2021.07.28 조회 수 93 추천 수 0
이해도 1.12 
게임버전 (JE) 스피곳 
스크립트 버전 중급자(필요한 애드온을 찾아서 만들 수 있어요) 
스크립트 애드온 2.6 beta 

set {_tp} to location 10 forward and 1.5 above player 이렇게 해서  플레이어를 {_tp}로 텔레포트 시키는데 계속 벽이 통과돼요..

혹시 벽을 감지하면 그 좌표에서 멈추게하는 방법이 없을까요?

4개의 댓글

거너아나
2021.07.28

push는 어떠신지

Terry1790001
2021.07.28
@거너아나

텔레포트에요

스크립터브혼
2021.07.28

도착위치에서 출발위치까지의 블록들을 순차적으로 벽인지 아닌지 확인해야 합니다.

작성하신 direction 익스프레션으로 구현할수 도 있고, vector를 사용해도 되고, blocks의 패턴으로 두 좌표를 끝으로하는 선분에 걸친 블록들을 받아서 해도 됩니다.


# direction
loop 10 times:
    set {_i} to 11 - loop-number
    set {_block} to block {_i} forward player 
    
    if {_block} is a air:
        teleport player to location 0.5 down {_block}
        stop

# vector
set {_loc} to location 10 forward player
set {_next} to location 9 forward player
set {_v} to vector {_end} and {_next}
loop 9 times:
    set {_block} to block at {_loc}

    if {_block} is a air:
        teleport player to location 0.5 down {_block}
        stop

    else:
        set {_loc} to {_loc} ~ {_V}

# blocks
set {_start} to location 10 forward player
set {_end} to to location of player
loop blocks from {_start} to {_end}:
    if loop-block is a air:
        teleport player to location 0.5 down {_block}
        stop

이 세 예제는 대략적인 코드의 흐름입니다.

이걸 활용해서 도전해보세요.

HAN1110
2021.08.01

얻! 제가 필요한거네요. 잘쓰겠습니다~