인프런 커뮤니티 질문&답변

Estados Unidos님의 프로필 이미지

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘

오른손 법칙

frontX, frontY, rightX, rightY 내 포지션 기준점

작성

·

421

0

        enum Dir

        {

            Up = 0,   // 3

            Left = 1, // 0

            Down = 2, // 1

            Right = 3,// 2

        }

           

 

// 현재 바라보고 있는 방향을 기준으로, 좌표 변화를 나타낸다.

            int[] frontY = new int[] { -1 , 0, 1, 0};

            int[] frontX = new int[] { 0, -1, 0, 1 };

            int[] rightX = new int[] { 1, 0, -1, 0};

            int[] rightY = new int[] { 0, -1, 0, 1 };

 

frontY, frontX의 기준은 이해하였으나 , rightX와 rightY의 값들이 위와 같이 나뉘어진 이유를 알고 싶습니다.

답변 3

1

저도 이부분에서 막혔었는데 3 by 3 grid를 종이에 그려보고 플레이어를 (1,1) 가운데에 배치하고 보시면 됩니다.

플레이어는 오른쪽 벽부터 짚는 것을 확인하기 때문에 이에 대해 방향에 따른 오른쪽 좌표를 배열로 표현한 것이고

UP[y : 0, x : +1] / LEFT[y : -1, x : 0]

DOWN[y : 0, x : -1] / RIGHT[y : 1, x: 0]

그래서 rightY = {0, -1, 0, 1} / rightX = {1, 0, -1, 0}가 됩니다.

0

저도 무슨 말인지 이해가 되지 않아서 한참동안 생각했는데, 우측방향에서 X축 이동, Y축 이동을 의미하는 거였네요.

가령, 우측방향 입장에서는 X축에서 오른쪽으로 이동하는 건 위로 가는 것이니 1이 됩니다.

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

내가 바라보고 있는 방향 기준으로
오른쪽의 좌표를 표시하고 있습니다.