RPG Maker
2009.09.06 19:13

다운로드

Views 761 Votes 0 Comment 0
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
다운로드

VC만으로 게임을 만들 때 그림 처리가 상당히 곤란하시죠? 리소스로 넣자니 실행파일 크기가 커지고, 비트맵 파일로 불러들일려고 해도 상당히 귀찮잖아요. (아니라고 하시면 곤란-_-;)



PNG 타입의 그림 파일은 여러분도 잘 아시다시피 RPG만들기 2000부터 지원해온 그림 파일입니다. 이런 파일을 간편하게 DC 형태로 바꿔주는 라이브러리...의 소스입니다.



사용하실 때는 컴파일 결과의 DLL파일과 동봉된 두 DLL파일과 헤더파일 두개를 모두 한곳에 몰아넣고 Image.h만 인클루드 해서 쓰시면 됩니다.



메소드를 살펴보지요.

CImage::Get*()

이놈들은 그림파일을 연 다음에 GDI 오브젝트들을 사용하고 싶을 때 호출하는 함수가 되겠습니다.

CImage::OpenImgFile(LPCTSTR szFileName, BOOL bSprite = TRUE)

이놈이 핵심인데요, 이놈은 그림파일을 열어서 DIB 사양의 GDI 오브젝트를 만들어줍니다.



간단한 사용법이라고 한다면, 예제를 들면 되겠네요.



#include <windows.h>
#include "Image.h"

void main()
{
HDC hdcScr;
CImage image;
int x, y, w, h;

image.OpenImgFile("test.png"); // 그림파일을 열고
x = (1024 - image.GetBitmapInfo()->bmiHeader.biWidth) / 2, // image.GetBitmapInfo()는 그림에 대한 각종 정보가 들어 있는 구조체의 포인터를 리턴. BITMAPINFO 구조체
y = (768 - image.GetBitmapInfo()->bmiHeader.biHeight) / 2,
w = image.GetBitmapInfo()->bmiHeader.biWidth,
h = image.GetBitmapInfo()->bmiHeader.biHeight;

hdcScr = GetDC(NULL); // DC를 받아서
if(image.HasAlpha()) // 투명색이 있다면
{
  BitBlt(hdcScr, x, y, w, h, *image.GetMaskImage(), 0, 0, SRCAND); // 마스크를 찍어주고
}
BitBlt(hdcScr, x, y, w, h, image, 0, 0, image.HasAlpha() ? SRCPAINT : SRCCOPY); // 그 위에 그림을 뾱[...]

ReleaseDC(NULL, hdcScr);
}



뭐, 대충 이런 느낌으로 쓰시면[...]



소스 파일에는 상당히 자세하게 주석을 단다고 달아뒀으니[...] 아마 이해하는데 큰 어려움은 없을거라고[...]



참, 컴파일 하실 때는 Win32 Dynamic-Link Library로 프로젝트를 생성하셔서 쓰셔야 할겁니다~_~ 그리고 동봉된 lib파일도 필수로 삽입을..



ps. 테스트 환경은 펜티엄 M 프로세서 1.5기가헤르츠, 윈도우즈 엑스피였고, 문제 없이 잘 돌아갔습니다.

ps2. 동봉된 DLL 파일은 각각 libpng.org, zlib.net에서 소스를 받아서 Win32 DLL ASM Release 에서 컴파일했습니다.

ps3. 이걸로 조만간 어떠한 게임이 만들어질 예정[...]
?

List of Articles
No. Category Subject Author Date Views
84 언어/기타 [잡담] ONE's SCRIPT 소개 Zeprod 2008.12.16 1409
83 언어/기타 [ODS] ODS 사용환경 설정법 Zeprod 2008.12.16 1308
82 RPG Maker [RPG XP]스크립트를 이용한 SRPG 이동범위 산출 및 범위 보여주기 4 file 신덴 2009.01.09 4170
81 RPG Maker [VX] 메뉴화면에 이어하기를 넣는 스크립트... 카리스 2009.01.09 2877
80 언어/기타 게임을 시작한다음 튕기게 해보자(?) 4 file 켈군 2009.02.04 2947
79 언어/기타 0.0초를 다룰때 조심할점 3 A. 미스릴 2009.03.13 2648
78 RPG Maker [vx]주인공들 체력 변수로 관리하기 (스크립트) 나나야츠루 2009.03.13 2882
77 RPG Maker RPG2003 에서요 6 완폐남™ 2009.03.18 741
76 RPG Maker RPG2000 마우스 사용 관련 자료 1 file Black-☆ 2009.04.02 768
75 언어/기타 커맨드입력 4 엘류트 2009.04.17 2797
74 언어/기타 알만툴에서 윤년표현 file 엘류트 2009.04.17 2806
73 RPG Maker 넷플레이 스크립트 2.0 사용법 3 독도2005 2009.05.03 3170
72 언어/기타 잠입액션에서 적의 시야 설정하기 (예제有) 3 file rhj 2009.05.06 3326
71 언어/기타 게이지 강좌~~~ (자작자료사용) 3 file 게이지의달인 2009.05.29 929
70 언어/기타 화성학 기초 2 file C코드선생 2009.07.21 1020
69 RPG Maker RPG의뜻 1 zl게임을만들고파 2009.09.06 650
» RPG Maker 다운로드 1 zl게임을만들고파 2009.09.06 761
67 언어/기타 마법에관한것들 zl게임을만들고파 2009.09.06 581
66 언어/기타 사운드 zl게임을만들고파 2009.09.06 421
65 RPG Maker 은행 시스템 구현하기 1 앞만보맨 2009.11.03 814
Board Pagination Prev 1 ... 42 43 44 45 46 47 48 49 50 51 Next
/ 51






[privacy statements] | [Terms of Use] | [Contact us] | [Sponsorship] | [Indiside History]

Copyright © 1999 - 2016 INdiSide.com/CL3D Co., Ltd. All Rights Reserved.
Owner : Chunmu(Jiseon Lee) | kernys(Wonbae Kim) | Sasinji(Byungkook Kim)