본문으로 바로가기

저는 가장먼저 게임을 짜기전에 사용자 인터페이스를 C언어로 구현하려고 합니다.


<사용자 인터페이스란?>


사람(사용자)과 사물 또는 시스템, 특히 기계, 컴퓨터 프로그램 등 사이에서 의사소통을 할 수 있도록 일시적 또는 영구적인 접근을 목적으로 만들어진 물리적, 가상적 매개체를 뜻한다. 사용자 인터페이스는 크게 사용자가 시스템을 조작하는 입력과 시스템이 그로 인한 반응, 결과를 보이는 출력으로 나눌 수 있다. 컴퓨터 과학과 인간과 컴퓨터 상호작용(HCI)에서 사용자 인터페이스는 프로그램이 사용자에게 보여 주는 화상 · 문자 · 소리 정보와 프로그램을 조작하기 위한 수단(이를테면 컴퓨터 자판의 글쇠 입력이나 마우스의 움직임)을 일컫는다. [네이버 지식백과] 사용자 인터페이스 [使用者-, User Interface] (HRD 용어사전, 2010. 9. 6., (주)중앙경제)


제가 생각하는 사용자 인터페이스는 첫 화면에서 시작하기, 종료등의 메뉴를 키보드 방향키로 선택하여서 그 메뉴에 해당하는것을 실행하도록 하고싶었습니다. 그런데 어떻게해야될지 잘모르겠어서 검색하다가 나온 예제소스를 가져왔습니다.<저작권 X>



코드분석 -

위 코드는 4가지의 메뉴중에서 하나를 고르는 코드입니다. 

먼저 위에서부터 코드를 천천히 살펴보면서 해석을 해보겠습니다.

1. gotoxy함수

gotoxy함수에서 가장먼저 보이는게 COORD입니다.

COORD는 coordinate의 약자로써 프로그램에서는 좌표계라는 뜻입니다.

윈도우API에는 다음과같이 X축의 값 X, Y축의 값 Y으로 정의 되어 있습니다. 이것은 화면의 위치등을 나타낼때 쓰입니다.


COORD

The COORD structure defines the coordinates of a character cell in a console screen buffer. The origin of the coordinate system (0,0) is at the top, left cell of the buffer.

typedef struct _COORD { // coord. SHORT X; // horizontal coordinate SHORT Y; // vertical coordinate } COORD;

X
Horizontal or column value.
Y
Vertical or row value.

그리고 SetConsoleCursorPosition이라는 함수는 커서를 원하는 장소로 옮길때 사용하는 함수입니다.
그러므로 gotoxy함수는 COORD에 좌표값을 받은뒤, SetConsoleCursorPosition에 넣어서 커서를 그 좌표로 보내주는 함수입니다.

2. hideCursor함수

여기서는 가장먼저보이는게 CONSOLE_CURSOR_INFO 구조체네요.

typedef struct _CONSOLE_CURSOR_INFO {

DWORD dwSize;

BOOL bVisible;

} CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO;

- 콘솔의 커서에 대한 정보를 가지고 있는 구조체

- dwSize : 커서로 채워지는 캐릭터 칸의 %를 나타내는 것

                값은 1 ~ 100사이

- bVisible : 커서가 보일지 말지 정함

이것은 처음에 커서가 안보이도록 설정해주는것같습니다.

이런식으로 인터페이스를 간단하게 구현할수 있을 것 같습니다.