forza horizon 모션 데이터 출력을 위해서 ncurse 사용하게 될 줄이야..
일단 패키지를 설치해주고
$ sudo apt-get install libncurses-dev |
소스를 가져오고
#include <ncurses.h> #include <unistd.h> int func1(){ initscr(); mvprintw(0, 0, "Hello, World"); // 화면의 0행, 0열부터 Hello, World를 출력합니다. refresh(); // 화면에 출력하도록 합니다. sleep(1); endwin(); return 0; } int main(){ return func1(); } |
#include <ncurses.h> #include <unistd.h> int timer(){ int row = 10, col = 10; initscr(); noecho(); // 입력을 자동으로 화면에 출력하지 않도록 합니다. curs_set(FALSE); // cursor를 보이지 않게 합니다. keypad(stdscr, TRUE); while(1){ int input = getch(); clear(); switch(input){ case KEY_UP: mvprintw(--row, col, "A"); // real moving in your screen continue; case KEY_DOWN: mvprintw(++row, col, "A"); continue; case KEY_LEFT: mvprintw(row, --col, "A"); continue; case KEY_RIGHT: mvprintw(row, ++col, "A"); continue; } if(input == 'q') break; } endwin(); return 0; } int main(){ return timer(); } |
아래의 링커 옵션을 주고 빌드하면 끝
$ gcc ncruse_example.c -lncurses -o bin/ex1 |
mvprintw() 만 쓰면 원하는 위치에 꾸준히 갱신할 수 있을 듯
[링크 : https://blackinkgj.github.io/ncurses/]
[링크 : https://www.ibm.com/docs/ko/aix/7.3?topic=p-printw-wprintw-mvprintw-mvwprintw-subroutine]