2011-08-25 3 views
1

저는 도움이 필요합니다. 저는 C++을 사용하여 roguelike를 만들려고하고 있습니다. 그리고 지금은 매우 간단한 작은 화면을 가지고 있습니다. 벽에 "#"을 사용하고 "." 바닥 용. 플레이어의 X와 Y 값을 매핑하는 정수를 비교하여 플레이어를 그릴 수 있습니다. 나는 심지어 플레이어의 통계를 표시하는 작은 HUD를 가지고있다.화면을 다시 그려서 이미 있던 것을 닦으십시오.

그러나이 문제는 일반적인 명령 콘솔 창을 사용하여 모두 설계 되었기 때문에 내가 잘못하고 있다고 생각하기 시작했습니다.

나는이 큰 빈 방에서 숫자판을 사용하여 움직이기를 원합니다. 스위치를 사용하여 X 및 Y 플레이어 값을 조정 한 다음 화면을 다시 그립니다.

여기에 문제가 있습니다. 이 실제로 다시 화면을 다시 그립니다. 그것은 내가 이동하는 모든 시간마다 20 홀수 줄을 다시 추가합니다. 몇 번의 이동 후에는 수백 줄의 텍스트가있는 명령 콘솔 창이 있습니다.

그래서 내가 뭘 잘못하고 있니? 화면을 지우지 않는 명령이 있습니까?
아니면 처음부터 잘못하고 있습니다. 예를 들어, 명령을 입력하려면 'Enter'를 눌러야합니다. 다른 명령에서는 나오지 않습니다. 나는 초보자 프로그래머이므로, 모든 도움을 주시면 감사하겠습니다!

고마워요!

편집 : 좋아, 고마워, 이제 PDCurses를 사용하고 문서를 어떻게 사용하는지 알아 내야한다! 다시 한번 감사드립니다! 누군가 큰 틱을 제안한 사람을주세요! : D

+0

미등록 계정을 병합했습니다. 이제 답변 아래에 댓글을 남기거나 질문을 수정하거나 가장 도움이 된 답변을 수락 할 수 있습니다. 답변을 답장으로 쓰지 마십시오. 문제를 해결하는 답변을 위해 엄격하게 예약해야합니다. –

답변

4

화면을 그릴 때 어떤 방법을 사용합니까? 정상적인 iostream입니까? 이런 종류의 작업을 위해서는 일반적으로 curses이라는 라이브러리가 권장됩니다. 전체 화면을 스크롤하거나 다시 그리지 않고도 화면의 아무 곳이나 텍스트를 그릴 수 있습니다.

+0

저 curses가 원래 Rogue에 실제로 사용 된 것을 봅니다. – john

+0

OS ncurses 또는 pdcurses에 따라 아마 심지어 더 좋을 것입니다. 아니면 주위의 많은 C++ 래퍼 중 하나 일 수도 있습니다. – PlasmaHH

0

나는 이식성과 함께 할 수있는 확실한 방법을 모르고있다. 어쩌면 콘솔 지향적 인 lib를 찾아 볼 수도있다. 어쨌든 Windows에서는 여전히 "cls"시스템을 사용할 수있다.

0

ansi 이스케이프 문자열을 사용할 수 있습니다. printf ("\ 33 [2]").

+0

'\ x1b [2J']이어야합니다. – Xenon

관련 문제