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

taeyoung kim님의 프로필 이미지
taeyoung kim

작성한 질문수

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

오른손 법칙 하다가 막혔습니다..

해결된 질문

작성

·

255

0

해당부분에서 자꾸 크러쉬나는데

PosX 가 1인상태로 _Dir 값이 2가 될 경우에

if나 else 문으로 빠지지않고 무한적으로 else if문으로 진입하여 결과적으로

PosX = 1 , PosY = 24일때  _board[25 (PosY(24) + frontY[2(1)] ,  1]

으로 배열 사이즈가 넘어가면서 크러쉬가납니다.

왜 이럴까요 ㅠㅠ 맵은 Binary Tree 알고리즘을 사용하여 만들었습니다.

답변 4

3

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

1) Board 벽 막기 관련 (크게 상관 없긴 합니다)

Board.cs Line 55 부근
if (y == Size - 2 && x == Size - 2)  continue;
이 빠져서 외각 벽이 완전히 안 막혔네요!

2) Player 이동 코드에서 매의 눈을 탑재해야 발견할 수 있는 버그

Player.cs Line 43 부근
 if (_board.tile[PosY + rightY[_Dir], PosX + rightX[_Dir]] == Board.TileType.Empty)
PosY이 아닌 posY로 해서 엉뚱한 곳을 서칭하고 있었습니다.

3) 프레임 관련
Program.cs Line 26 부근
int deltaTick = currentTick - lastTick;
둘 순서가 뒤바뀐 문제가 있었습니다.

가끔 스스로의 매의 눈에 감탄하는 경우가 있는데 2번 찾고 뿌듯했습니다.

1

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

배열 범위를 초과한 인덱스에 접근했다는 것은
범위를 체크하는 Validation 코드에 문제가 있다는 것이니
해당 부분을 먼저 확인해보시기 바랍니다!

대부분 >=와 >을 거꾸로 쓴다거나 하는 미세한 차이에서 실수하는 경우가 많아요.
그래도 못 찾으시겠으면 rookiss@naver.com으로 통으로 압축해서 보내주시기 바랍니다.

0

taeyoung kim님의 프로필 이미지
taeyoung kim
질문자

오오 2번 1시간 넘게 잡고있었는데 못발견한걸 발견해주셨네요 ㅠㅠ  감사합니다!!

정말 강의도 좋고 질문 답변도 빠르고 대박강의네용 @_@

끝 강의까지 잘 부탁드립니다.

0

taeyoung kim님의 프로필 이미지
taeyoung kim
질문자

메일 보내드냈습니다.ㅠ-ㅠ 확인부탁드립니다.

taeyoung kim님의 프로필 이미지
taeyoung kim

작성한 질문수

질문하기