인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

cyy0067님의 프로필 이미지
cyy0067

작성한 질문수

홍정모의 게임 만들기 연습 문제 패키지

탱크 문제

해결된 질문

작성

·

349

2

안녕하세요. 강의를 듣고있는 학생입니다.

탱크 연습문제를 구현한 곳에서 질문사항이 있습니다.

ESC 버튼을 눌러 프로그램을 종료 시킬 때마다 다음과 같은 오류가 나오고 있습니다.

어떻게 해야할까요? ㅠㅠ 제가 원하는 결과는 잘 나오는 것같은데...

작성한 소스코드는 다음과 같습니다.

// 탱크와 총알 클래스

// update가 구현되어있는 탱크게임 클래스

바쁘신 와중에도 질문을 하게 되어 죄송합니다.

유튜브도 잘 보고있어요 ! :D

답변 4

2

홍정모님의 프로필 이미지
홍정모
지식공유자

Delete를 이미 의심하고 계신 것 같네요. 디버그 모드를 사용해보세요. 런타임에러 잡는 요령을 터득하는 것은 매우 중요합니다.

0

cyy0067님의 프로필 이미지
cyy0067
질문자

네 ! 답변해주셔서 정말 감사합니다. 그래픽스는 기초 교과서를 한번 알아보겠습니다.

0

홍정모님의 프로필 이미지
홍정모
지식공유자

맞아요. 아주 전형적인 런타임 에러입니다. 중요한 것을 스스로 찾아내셨네요. 그래픽스는 게임 개발이든 다른 용도이든 상관 없이 기초 교과서부터 보셔야 합니다. 앞부분 수학이 알고보면 어렵지 않은데, 모르면 뒤로 갈수록 헤매게 됩니다.

0

cyy0067님의 프로필 이미지
cyy0067
질문자

네 ! 강사님 말씀대로 디버그 모드를 사용하여 문제를 해결 했습니다.

디버그 모드를 사용하니까

다음과 같은 함수에 접근하여 예외처리를 뱉는 것을 확인했습니다.

구글링을 해보니까

https://www.reddit.com/r/learnprogramming/comments/5oz6s7/wrote_a_very_basic_program_but_the_debugger_keeps/

reddit 사이트에서 저와 같은 경우의 사람이 있었어요.

알고보니 new로 할당되지 않은 것을 삭제해서 예외처리가 됐던 경우더군요.

제가 총알의 포인터를 저장하는 배열을 만들어서

총알을 생성할 때마다 nullptr인 공간에 총알을 추가하고

공간 밖으로 나갔을 경우는 nullptr 처리하였기에, 

배열 전체에는 동적할당이 된 곳과 nullptr인 곳으로 나뉘어있더군요.

그래서 다음과 같이 소멸자의 코드를 수정하니까 정상적으로 동작하였습니다.

질문에  빠르게 답변해주셔서 정말 감사합니다 ! 

추가로 몇 가지를 여쭤보고 싶은 점은..

저는 20살에 대학교를 진학하지 않고 게임 개발자가 되기 위해 독학을 하고 있는 취준생입니다.

그래서 게임 회사는 그래픽스를 중요시 여기기에 그래픽스를 공부하기위해 이 강좌를 최근에 수강하기 시작했습니다.

그런데 제 생각 외로 그래픽스의 이론 중심보다는 C++ 실무의 중심인 강좌를 인 것 같아서.. ( 제가 지금까지 공부한 내용으로는.. )

혹시 괜찮으시다면 게임 개발에 유용한 그래픽스는 어떻게 공부하면 좋은지 조언 한마디를 부탁드려도 될까요?

감사합니다.

cyy0067님의 프로필 이미지
cyy0067

작성한 질문수

질문하기