roguelike를 쓰려고 시도하는 동안 이상한 동작이 발생했습니다. 채워진 직사각형 모양의 글자를 인쇄하는 간단한 루프를 만들었습니다. 일반 (stdscr) 창 또는 derwin()에서 새로 초기화 한 창을 모두 잘 작동합니다. Loop within stdscr/newly initialised window from derwin().PDCurses 창이 일부 영역에서 문자를 인쇄하지 않습니다.
하지만 Game 클래스에서 창 포인터를 반환하면 문제가 발생하기 시작합니다. 편지는 아무런 무늬도없이 인쇄되는 것처럼 보이며, 창문의 일부가 덮인 것처럼 보입니다. Loop, when the pointer is returned.
디버깅을 시도했지만 성공하지 못했습니다. 커서가 움직이고, 루프가 작동하고, 글자가 인쇄되지만, 때로는 아스트랄 프로젝션 수준에 머물러있어 나타나지 않습니다. 여기
코드입니다 : Game.cppGame::Game() : m_winMode(WinMode::GameWin) {
[...]
initscr();
wresize(stdscr, WIN_HGHT, WIN_WDTH);
m_gameWin = derwin(stdscr, GAMEWIN_HGHT, GAMEWIN_WDTH, 0, 0);
[...]
}
WINDOW * Game::getWindow(Game::WinMode t_mode) const {
[...]
switch (t_mode) {
case Game::WinMode::GameWin:
return m_gameWin;
break;
[...]
}
pdcurses - Test.cpp에 -이 주 파일 여기
#include "stdafx.h"
#include "Game.h"
#include "Map.h"
int main() {
Game game;
game.prepareScreen();
WINDOW * test = game.getWindow(Game::WinMode::GameWin);
wclear(test);
for (int i = 0; i <= 48; i++) {
for (int y = 0; y <= 120; y++) {
mvwaddch(test, i, y, '%');
}
}
wrefresh(test);
전체 코드입니다 : github.com/gebirgestein/pdcurses -test/tree/test/pdcurses-test/pdcurses-test
미리 감사드립니다.
답변을 주셔서 감사합니다. 문서의 touchwin()을 간과 한 것 같습니다. 어쨌든, 나는 newwin() 함수를 사용할 수 있다는 것을 알아 냈다. –