글
[Util 클래스의 Class Diagram]
앞서 설명드린 프로그램 설계를 토대로, 소스 코드 구현부를 자세히 설명드리고자 합니다. 먼저, Util.h 와 Util.c 를 분석해 보겠습니다.
[Util.h]
#ifndef _UTIL_H #define _UTIL_H void CursorUtil_GotoXY(int x, int y); void CursorUtil_Hide(); #endif
1 ~ 2, 6 라인
현재 헤더파일을 include 하는 곳에서 중복 포함하지 않게 하기 위한 guard 입니다.
4 ~ 5 라인
Util 클래스에서 사용할 함수의 선언부입니다.
[Util.c]
#include <windows.h> #include "Util.h" void CursorUtil_GotoXY(int x, int y){ COORD pos = { x, y }; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos); } void CursorUtil_Hide(){ CONSOLE_CURSOR_INFO cursorInfo; cursorInfo.dwSize = 1; cursorInfo.bVisible = FALSE; SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursorInfo); }
1 ~ 2 라인
소스코드에 필요한 헤더파일을 include 합니다.
4 라인
CursorUtil_GotoXY 함수의 정의부입니다. 매개변수로 x 와 y 를 받아서, 출력 커서를 x, y 위치로 이동시킵니다.
4 ~ 7 라인
x 와 y 를 가지고 COORD 구조체를 생성하고, 이를 매개변수로 넘기면서, SetConsoleCursorPosition 함수를 호출하여 출력 커서를 이동합니다.
(콘솔 커서 좌표 이동하기 참고)
http://kkikkodev.tistory.com/26
9 라인
CursorUtil_Hide 함수의 정의부입니다. 이 함수는 커서를 숨기는 역할을 합니다.
9 ~ 14 라인
CONSOLE_CURSOR_INFO 구조체를 선언하고, 멤버인 bVisible 에 FALSE 를 저장하고, 이를 SetConsoleCursorInfo 함수에 넘겨서 커서를 숨깁니다.
(콘솔 커서 숨기기 & 두께 조절하기 참고)
'1.2) 프로젝트 > 테트리스' 카테고리의 다른 글
테트리스 ver 0.2 (1) - 실행 결과 & 프로젝트 개요 (0) | 2015.06.12 |
---|---|
테트리스 ver 0.1 (10) - 개발 완료 / 후기 (0) | 2015.06.12 |
테트리스 ver 0.1 (9) - 소스코드 구현 (Main) (0) | 2015.06.12 |
테트리스 ver 0.1 (8) - 소스코드 구현 (TetrisView) (0) | 2015.06.12 |
테트리스 ver 0.1 (7) - 소스코드 구현 (TetrisManager) (0) | 2015.06.12 |
테트리스 ver 0.1 (6) - 소스코드 구현 (Block) (0) | 2015.06.12 |
테트리스 ver 0.1 (4) - 소스코드 구현 (Constant) (0) | 2015.06.12 |
테트리스 ver 0.1 (3) - 프로그램 설계 (Use Case, Class, Sequence) (0) | 2015.06.12 |
테트리스 ver 0.1 (2) - 요구사항 분석 (0) | 2015.06.12 |
테트리스 ver 0.1 (1) - 실행 결과 & 프로젝트 개요 (0) | 2015.04.28 |
RECENT COMMENT