2017-12-16 28 views
0

cc에서 ncurses를 사용하여 게임을 만들었지 만, 게임 설정 (LINES AND COLS)을 기반으로 만든 창은 너무 작아서 게임에서 무슨 일이 일어나고 있는지보기가 어렵습니다. 창을 더 잘 보이게하고 사용자가 게임의 진행 상황을 볼 수 있도록 창의 크기를 늘릴 수있는 방법이 있습니다 (선과 목줄을 바꾸지 않고)?Ncurses window zoom

코드 : 당신은 굵게 비디오 하이라이트를 사용하거나 이러한 호출 사용하여 그린 텍스트 역 (또는 다른 색상) 수

void drawGame(RESPONSE resp) { 
int i, j; 
WINDOW *game_win; 
init_pair(2, COLOR_WHITE, COLOR_GREEN); 
game_win = newwin(resp.width, resp.height, 1, 1); 
wbkgd(game_win, COLOR_PAIR(2)); 
keypad(game_win, TRUE); 
noecho(); 
curs_set(FALSE); 

for (int i = 0; i < resp.width; ++i) { 
    for (int j = 0; j < resp.height; ++j) { 
     if (resp.maze[i][j].type == indestrutiveBlock) 
      mvwaddch(game_win, i, j, '#'); 
     if (resp.maze[i][j].type == destrutiveBlock) 
      mvwaddch(game_win, i, j, '*'); 
     if (resp.maze[i][j].type == object) 
      mvwaddch(game_win, i, j, '@'); 
     if (resp.maze[i][j].type == enemy) 
      mvwaddch(game_win, i, j, 'e'); 
     if (resp.maze[i][j].type == emptyBlock) 
      mvwaddch(game_win, i, j, '.'); 
    } 
} 

wrefresh(game_win); 
} 
+1

인 대부분의 OS에서는 콘솔 글꼴 크기를 원하는대로 설정하는 것은 사용자의 몫입니다. 그것은 ncurses 목적 이상입니다. – usr2564301

+0

'SIGWINCH'를 처리하고 싶을 수도 있습니다. [signal (7)] (http://man7.org/linux/man-pages/man7/signal.7.html) 및 [signal-safety (7)] (http://man7.org/linux/)를 읽으십시오. man-pages/man7/signal-safety.7.html) –

+0

BTW에서는 게임을하기 위해 일부 GUI 사용을 고려할 것입니다. [libsdl] (https://www.libsdl.org/), [GTK] (http://gtk.org/) –

답변

0

:

  mvwaddch(game_win, i, j, '.'); 

그 마지막 매개 변수가 더를 문자보다 작 으면

  mvwaddch(game_win, i, j, '.' | A_REVERSE | A_BOLD); 
+0

하이라이트는 조금 도움이되었지만 확대와 같은 방법이 없다면 창문에. 내 나쁜 영어 죄송합니다 : D – Kelve

+0

아니 - 할 방법이 없어. 그래서 우리는 비디오 하이라이트가 있습니다 :-) –