2-1. Text Graphic 프로그래밍

컴퓨터의 운영체제란

 

응용 소프트웨어 ---> 시스템 소프트웨어 (OS) <--- 하드웨어

관리해주는 Operating System 줄여서 OS 

컴퓨터의 소프트웨어

 

CUI - Characer User Interface

GUI - Graphic User Interface 

CUI 는 말하자면 콘솔 명령창

GUI는 말하자면 바탕화면

 

 

mtg API (다중운영체제 지원 텍스트모드 그래픽 함수)

 

API 란? 

프로그램들이 서로 상호작용하는 것을 도와주는 매개체

1. 서버와 데이터베이스에 대한 출입구 역할

2. 기기와 애플리케이션이 원활하게 통신하도록

3. 모든 접속 표준화

 

Private API - 내부 API. 내부적으로 발행. 제3자에게 노출되지 않음.

 

Public API - 개방형 API

 

Partner API - 기업이 데이터 공유에 동의하는 특정인들만 - 비즈니스 관계

 

 

mtg API는 텍스트모드(CUI)에서 가로 80, 세로 24의 화면으로 리눅스와 윈도우즈에서 함수 이름 변경 없이 동일한 효과를 낼 수 있다.

 

mtg - 그냥 쉽게 처리해보는 거다 이건듯?

 

 

mtg의 3개의 모드

 

#define _MSWINDOWS_

#define _LINUX_

#define_LINUX1

 

모든 플랫폼에서 만들려면 공통 API만 사용하면 된다.

 

mtg를 사용하기 위해서는 - 

#include "mtg.h" //꼭 필요

 

void Draw() //꼭 필요. 함수 이름 변경 불가

 

프로젝트 루트 폴더에 mtg.h와 mtg.c 파일이 꼭 있어야 함

 

 

mtg의 공통함수

 

void BeginWindow()

 

void EndWindow()

 

void _DrawText(int x,int y,char* msg)

void _Invalidate()

char GetKey()

long _GetTickCoung()

void _Delay(int time)

void MessageBox(intx,int y,int w, int h, char* msg)

 

텍스트 그래픽 초기화

 

mtg에서 일반 프로그래머가 사용할 수 있는 함수는 모두 "_"로 시작된다.

mtg 사용을 위해 초기화가 필요하다.

 

_BeginWindow(); //운영체제별 TextGraphic 초기화

_EndWindow(); //초기화된 TextGraphic 원상복구

 

화면 출력

 

//_DrawText(int x, int y, char* msg)

// x: x의 위치, y: y의 위치, msg: 출력할 내용의 문자열 주소

 

char temp[80];

sprintf(temp,"haha");

_DrawText(10,20,temp); //x:10 y:20 위치에 "haha"를 출력

 

 

중앙 집중적 화면 처리

 

1. 화면 출력이 필요한 자료 변수를 전역에 선언하고 초기화

2. Draw()에 위에서 선언한 변수를 출력

3. 필요 시점에 선언된 변수를 변경하고 Invalidate() 호출

-기존 화면을 모두 지운 후 Draw()를 호출하여 새로운 출력을 한다.

다시 그릴 때는 무조건 _Invalidate()

 

그러니까 Draw에서만 Draw하고 

나머지에서 변경하면 간접적으로 호출해서 새로고침

 

예를 들어

전역변수로 스코어 선언

화면에 Draw()로 그려놓음

다른 함수에서 수정이 필요할 때 Draw() (X) Invalidate() (O)

 

 

반복문의 continue

아래쪽 조건 먹금하고 다음 단계로 이동

 

 

키보드로 입력처리

 

_GetKey()함수로 키 입력을 받는다.

키값은 char형 변수로 받으면 된다.

 

-1은 아무 키 입력이 없었다는 뜻, 그 외에는 각 키 입력이 있었음.

운영체제마다 키값이 닫르다.

 

char key;

 

key = GetKey();//바로 실행됨

if(-1==key)

{

//아무 키도 눌리지 않음

}

else if('q'==key)

{

 

}

 

기본적인 프레임워크 

 

main()함수는 mtg를 초기화하고 RunGame()함수를 호출한다

RunGame()함수는 RunIni();를 호출하여 초기화하고 Draw()함수를 1회 호출한다.

이후 키보드 입력을 체크하다가 'q'키가 입력되면 RunGame() 함수를 종료하고 mtg 그래픽엔진을 소거하고 프로그램이 종료된다.

 

sprintf(char* a, "%d", int);

문자열 출력 대신 어딘가에 저장하는 함수