프로그래밍/ETC(31)
-
FMOD 세팅하기
FMOD란?위키백과FMOD는 오스트레일리아 멜버른에 위치한 파이어라이트 테크놀로지스에서 만든 음향 미들웨어이다.버전 3.75 이후로 FMOD는 아래와 같이 3가지 라이브러리와 프로그램으로 구성되어 있다.FMOD Ex, 저수준 사운드 엔진이다.FMOD 이벤트 시스템(FMOD Event System), FMOD 디자이너로 만들어진 추상적인 사운드 컨텐츠를 이용하여 데이터 기반 프로그래밍을 간단하게 할 수 있도록 도와준다.FMOD 디자이너(FMOD Designer), 사운드 디자이너를 위한 툴로 음악의 재생과 복잡한 사운드 이벤트를 만들어 낼 수 있다. 윈도우에서 세팅하기프로젝트 속성에 헤더와 라이브러리 포함 사용하기1234 System_Create(&system); system->init(1, FMOD_IN..
2015.04.24 -
msimg32.lib, GDI
msimg32.libMSimg32.lib은 GDI(그래픽 디바이스 인터페이스)의 컴포넌트다. GDIGID의 정의와 역사GDI란 선, 상자, 텍스트 등 유저 인터페이스의 기본이 되는 윈도우 툴이다. GDI는 윈도우즈95에서 도입해서 확장되었다.GDI는 XP가 출신 된 이후로 가치가 조금 떨어지긴 했지만여전히 새로운 윈도우 버전에서 사용되고 있다.(왜냐면 새로운 버전에서 문제가 없으면 문제가 생기므로) 다시 msimg32.libmsimg32.lib은 3가지의 API 함수가 포함되어 있다.AlphaBlend - 알파 영역이 있는 비트맵을 투명화 및 반투명으로 랜더링 한다.BitBlt 함수보다 내부 연산속도가 엄청나게 느리다. GradientFill은 컬러 그라데이션을 사각형과 삼각형에 채울 수 있다. Tran..
2015.04.23 -
GetKeyState, GetAsyncKeyState 차이
개요WM_KEYDOWN은 키가 눌러질 때 보내는 메세지.키가 눌러지고 있다고 전달되는 것이 아니다. (계속 누르고 있는 경우 반복되어서 입력되는 상태)이런한 처리를 하려면 키보드 메시지를 입력 받는 것이 아니라직접 키의 상태를 조사하여 적용해야한다. SHORT GetKeyState(int vVirKey);SHORT GetAnsyncState(int vKey); 조사하고자하는 가상키를 인수로 전달한다.일반 키일 경우 눌러져 있다면 MSB 비트는 1, 아니면 0.Caps Lock 같은 토글키는 켜져있을 경우 LSB가 1, 아니면 0함수의 리턴값과 0x8000과 &연산의 결과가 0인가 아닌가를 살피면리턴값이 부호있는 값이므로 음수이면 키가 눌러진것으로 판단한다. 두 함수의 차이키 상태를 조사하는 시점이 다르다..
2015.04.15 -
WinApi 정복 5장 (리소스)
1. 리소스리소스의 분리프로그램 - 코드와 데이터로 구성 ; 데이터는 처리 대상, 코드는 데이터 처리 수단.비트맵, 아이콘, 메뉴, 문자열 등등 프로그램의 논리와 무관한 모든 것들이 데이터이다. 코드와 무관한 데이터들을 리소스라고 하며 메뉴, 비트맵, 엑셀레이터, 문자열, 아이콘, 커서 등이 있다. 윈도우즈 - 코드와 리소스가 분리.도스 - 이미지, 비트맵 작업에 엄청난 시간이 들어감. 리소스의 장점- 디자이너와 프로그래머가 분담하여 작업하기 편리하다.- 리소스를 수정하더라도 프로그램을 일일이 다시 컴파일 하지 않아도 된다.- 재사용성- 이식성 2. 메뉴리소스 작성 WM_COMMAND 프로그램 실행중에 사용자가 메뉴 항목을 선택하면 WM_COMMAND 메시지가 발생한다.wParam의 하위 워드로 전달되므..
2015.04.14 -
WinApi 정복 2장 (WinMain)
1. WinMain헤더파일다른 헤더가 필요하지 않고 windows.h만 포함시키면 거의 해결된다. 시작점기존 프로그램의 main함수가 아니라 WinMain이 시작점이다. 시작 함수 원형1int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance ,LPSTR lpszCmdParam,int nCmdShow) cs1int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance ,LPSTR lpszCmdParam,int nCmdShow) cs 인수의미hInstance프로그램의 인스턴스 핸들hPrevInstance바로 앞에 실행된 현재 프로그램의 인스턴스 핸들. 없을 경우는 NULL이 되며 WIN32에서..
2015.04.14 -
winmain 구성 그림그려보기
1. 서론기존의 winmain 구성에서 교수님이 말씀하시길init, update, render, release 4개를 항상 구현해주는게 좋다고 하셨다.게임을 구현할때 함수 단위로 쪼개서 편리하게 구현할 수 있다. 2. 그림 그려보기keynote 환경에서 직접 그린 그림이다.(물론 옥스포드 노트에 손으로 먼저 그려봤다.)정의, 등록, 윈도우 생성을 하고윈도우를 보여주기전에 init를 실행한다.init 내부에서 대부분 초기에 필요한 값들을 지정해준다.윈도우를 보여주고 메세지 루프로 들어간다. 콜백함수 내에서 update, render를 통해주기적으로 값을 업데이트하고 화면에 그려주는 역할을 한다. 릴리즈는 프로그래머가 수동으로 정리해줘야 할 것들을 해제해준다. 3. 정리 코드 12345678910111213..
2015.04.11