어제는 되돌이킬 수 없는 우리의 것이 아니지만,내일은 이기거나 질 수 있는 우리의 것이다. -L.B.존슨
1 소개 #
- 이 라이브러리는 C/C++ 개념과 게임 프로그래밍 흐름을 익히기위해서 만들어졌습니다.
- 현재 학원에서 C/C++ 강의를 진행하는 중에 directx를 사용하지 않고 간단한 게임의 흐름과 로직을 설명할 수 없을가 하는 방안으로 만들어본 것 입니다.
- 매우 기본적인 함수들로만 구성되어있으며, 상용게임을 만들기에는 다소 무리가 있을 수 있습니다. (성능이나 여러가지 면에서 부족한 점이 많습니다)
- SDL, SDL_gfx를 기반으로 작성되어있습니다. (아마도 SDL관련 라이브러리들은 차후에 계속 추가할지도 모릅니다.)
- 이 라이브러리는 LGPL 라이센스 기반입니다. 즉, 사용하실 때 이 라이브러리 또는 제 이름을 명시하시면 어떠한 용도로 사용해도 상관없습니다.
3 다운로드 #
- SDL 1.2.7과 SDL_gfx의 소스 일부를 포함하고 있음을 밝합니다.
- 배포본 :
easygame.zip (397.76 KB) (업로드시간 -> 2004/05/10 오전 10:40)
4.1 dev-c++ #
- 배포본을 C:\easygame에 압축을 풉니다.
- 압축을 푼 디렉토리안에 dev-c++\templates내의 화일을 모두 C:\dev-c++\templates안에 복사합니다.
- 이제 dev-c++를 실행하고 새로운 프로젝트 메뉴를 선택하면 game dev study라는 탭이 생겨있을 겁니다. 클릭하시면 easygame 프로젝트를 만들수 있습니다.
4.2 visual c++ #
- 배포본을 C:\easygame에 압축을 풉니다.
- win32 console application으로 프로젝트를 새로 생성합니다.
- project -> settings 메뉴를 선택한다음, C/C++ 탭을 선택합니다.
- category 항목을 Code Generation으로 선택합니다. Use Run-time library를 Multithreaded DLL로 고칩니다.
- category 항목을 preprocessor로 선택합니다. additional include directories 부분에 c:\easygame\include를 추가합니다.
- 그다음에는 link 탭을 선택합니다.
- category 항목을 General로 선택합니다. Object/library modules 부분안의 내용 가장 끝에 easygame.lib SDL.lib SDLmain.lib을 추가합니다.
- category 항목을 input으로 선택합니다. additional library path 부분에 c:\easygame\lib를 추가합니다.
- 끝났습니다! 이제 test.c를 추가하고 컴파일해보세요. 새로운 화일을 만드셔도 좋습니다.
5 간단한 기본 틀 소스 #
아마도 최소화시킨 소스는 다음과 같이 작성할 수 있을 겁니다.
#include <stdio.h>
extern "C" {
#include "easygame.h"
}
int main(int argc, char *argv[])
{
easy_init_screen(640, 480, 32, 1);
// 일반적인 초기화작업
int x = 10, y = 10;
while(1) {
easy_begin_frame();
// 매프레임마다 할 작업을 적는다.
if (easy_keydown(SDLK_ESCAPE)) break; // esc키 누르면 종료
if (easy_keydown(SDLK_w)) y -= 5;
if (easy_keydown(SDLK_s)) y += 5;
if (easy_keydown(SDLK_a)) x -= 5;
if (easy_keydown(SDLK_d)) x += 5;
if (easy_begin_draw()) {
// 매프레임때마다 그리기 작업을 여기서 적는다.
easy_clear_screen(easy_color(255, 0, 0));
easy_draw_line( x, y, easy_mouse_x(), easy_mouse_y(), easy_color(255, 0, 255));
}
easy_end_frame();
}
easy_fini_screen();
return 0;
}









![[http]](/wiki/imgs/http.png)
그냥 스터디용으로만 봐주시길...
