RPG Maker
2009.09.06 19:13

다운로드

조회 수 811 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
다운로드

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
번호 분류 제목 글쓴이 날짜 조회 수
1004 RPG Maker 물체 밀어서 움직이는 이벤트 조금 더 쉽게 하는 법 zero? 2018.01.02 644
1003 언어/기타 [마지막 3명 모집] [취업연계무료교육] VR/AR 게임 콘텐츠 전문가 양성 과정 교육생 모집 file 황금상자 2017.07.14 702
1002 RPG Maker rpg vxa 로 겜만들때 데미지 설정 공식[링크] 준E 2017.06.08 740
1001 RPG Maker [꿀팁] 간단하게 만들 수 있는 실시간 전투 시스템 1 file 준E 2017.03.31 2019
1000 언어/기타 JSON parser 변환데이터 저장시 생기는 Object Too Deep 해결하기 title: 댓글러lklslel 2016.12.24 851
999 언어/기타 앙뜨프리너십에서 해커톤 부트캠프 모집중이네요 file 마나님이 2016.11.08 908
998 RPG Maker RPG MV에서 플러그인 오류의 원인에 대하여 1 title: 댓글러lklslel 2016.07.08 2359
997 RPG Maker RPG MV 게임 도중에 윈도우 스킨 파일 자체를 통째로 바꿔버리는 방법 (출처: HIME) 최저 2016.07.08 1627
996 언어/기타 게임의 버전을 짜 보자! - 유의적 버전 2.0.0 Yanggaeng 2016.06.07 1123
995 RPG Maker 텍스트 대화 도중 메뉴 여는 방법을 알아냈습니다! 2 file 정궈니 2016.03.12 2938
994 RPG Maker rpgmv 마우스 지원과 터치 지원이 되니. 2 팡소리 2015.10.25 1011
993 RPG Maker RPG Maker MV 와 AJAX를 이용한 웹통신 관련 영상. 2 HT9MAN 2015.10.25 2246
992 언어/기타 RPG게임 뻔한요소들. 8 title: 천무천무 2015.10.05 1644
991 언어/기타 자바스크립트와 관련해서 참고할 만한 사이트들 3 MARCO 2015.10.04 921
990 언어/기타 꿀잼이군요! 3 사람님[대회참가] 2015.05.20 873
989 RPG Maker [RPG2000/3 팁] 간편한 이벤트 단축키 title: 자게이하앵 2015.04.06 1833
988 RPG Maker [RPG2000/3 팁] 간편한 이벤트 단축키 1 file title: 자게이하앵 2015.04.05 748
987 언어/기타 [강의링크] 대비법칙-색상대비-밀당의 재미 약한 반대색 설계 title: 천무천무 2015.04.02 636
986 언어/기타 오다 주웠습니다. 9 사람님[대회참가] 2015.03.30 917
985 언어/기타 무료 이미지 사이트 Pixabay! 9 file 나작소 2015.03.28 909
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 51 Next
/ 51


[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)