해결된 질문
20.08.26 12:18 작성
·
251
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
2020. 08. 26. 13:02
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
2020. 08. 26. 12:26
배열 범위를 초과한 인덱스에 접근했다는 것은
범위를 체크하는 Validation 코드에 문제가 있다는 것이니
해당 부분을 먼저 확인해보시기 바랍니다!
대부분 >=와 >을 거꾸로 쓴다거나 하는 미세한 차이에서 실수하는 경우가 많아요.
그래도 못 찾으시겠으면 rookiss@naver.com으로 통으로 압축해서 보내주시기 바랍니다.
0
2020. 08. 26. 13:07
오오 2번 1시간 넘게 잡고있었는데 못발견한걸 발견해주셨네요 ㅠㅠ 감사합니다!!
정말 강의도 좋고 질문 답변도 빠르고 대박강의네용 @_@
끝 강의까지 잘 부탁드립니다.
0