我一直在努力从Ncurses的工作中得到任何意见。如果我使用stdscr
而不是我的自定义窗口,键盘输入工作正常。但是,如果我使用stdscr
,我绝对没有输出到终端。
这是我的编译参数:
gcc -o dungeon dungeon.c -lncursesw
有问题的代码:
setlocale(LC_ALL, "");
int key;
window = newwin(XLEN, YLEN, 0, 0);
keypad(window, TRUE);
initscr();
clear();
noecho();
cbreak();
refresh();
while (player.alive && !playerWin(monsters)){
key = wgetch(window);
if (key == 'y' || key == '7'){
player.alive = 0;
}
render(monsters);
refresh();
for(i = 0; i < numMonsters; i++){
moveMonsters(&monsters[i]);
}
monsterPlayerCollision(monsters);
int dead = monsterMonsterCollision(monsters);
if(dead){
monsters[dead].alive = 0;
}
dijkstraNon();
dijkstraTunnel();
clear();
usleep(3);
wrefresh(window);
}
如果有任何我可以做的澄清,请告诉我。