Skip to content

Latest commit

 

History

History
111 lines (81 loc) · 3.66 KB

README.md

File metadata and controls

111 lines (81 loc) · 3.66 KB

ManyLayer

ImageLayer 개조판

감사한 분들

Seunghyun Min (ImageLayer를 만들어주셨습니다)
Donghyun Lee (코드를 효율적으로 개선해주셨습니다)

사용법

※주의※ 이 수정본은 아직 기존 레포지토리의 fadeIn, fadeOut 기능을 갖고 있지 않습니다

기본적인 사용법은 ImageLayer와 비슷하지만, 텍스트도 출력할 수 있기에 이름만 바꿔봤습니다

초기화 코드

#include <stdbool.h>
#include "ManyLayer/ManyLayer.h"

콘솔 크기는 진행중인 프로젝트에 맞게 ManyLayerImplementation.h의 아래 값을 바꿔주세요

#define CONSOLE_WIDTH 160
#define CONSOLE_HEIGHT 45

이미지 출력 코드

int main(void) {
	ManyLayer manyLayer = DEFAULT_MANY_LAYER;

	manyLayer.initialize(&manyLayer);

	manyLayer.images = (Image[]){
		{ manyLayer.getBitmapHandle(L"images/block1.bmp"), 0, 0, 4, false },
		{ manyLayer.getBitmapHandle(L"images/block2.bmp"), 0, 300, 4, false },
		{ manyLayer.getBitmapHandle(L"images/block3.bmp"), 0, 600, 4, false },
	};

	manyLayer.imageCount = 3;

	manyLayer.renderAll(&manyLayer);

	return 0;
}

manyLayer.getBitmapHandle(L"이미지 경로")HBITMAP를 반환하고, (HBITMAP)LoadImageW(NULL, L"이미지 경로", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE)와 같은 기능을 합니다
이미지를 추가하시려면 manyLayer.images 배열에 { HBITMAP, x 좌표, y 좌표, 배율, 출력 안 함 여부 }를 추가해주시고, 배열의 길이를 위 코드와 같이 추가해주시면 됩니다

출력 결과

image

텍스트 출력

int main(void) {
	ManyLayer manyLayer = DEFAULT_MANY_LAYER;

	manyLayer.initialize(&manyLayer);

	manyLayer.texts = (Text[]){
		{ L"테스트1", 0, 0, 48, 64, 600, L"굴림", RGB(255, 255, 255), false },
		{ L"테스트2", 0, 300, 48, 64, 600, L"굴림", RGB(255, 255, 255), false },
		{ L"테스트3", 0, 600, 48, 64, 600, L"굴림", RGB(255, 255, 255), false },
	};

	manyLayer.textCount = 3;

	manyLayer.renderAll(&manyLayer);

	return 0;
}

텍스트를 추가하시려면 manyLayer.texts 배열에 { 내용, x 좌표, y 좌표, 가로 길이, 세로 길이, 굵기, 색깔, 출력 안 함 여부 }를 추가해주시고, 배열의 길이를 위 코드와 같이 추가해주시면 됩니다

출력 결과

image

텍스트와 이미지 동시 출력

int main(void) {
	ManyLayer manyLayer = DEFAULT_MANY_LAYER;

	manyLayer.initialize(&manyLayer);

	manyLayer.images = (Image[]){
		{ manyLayer.getBitmapHandle(L"images/block1.bmp"), 0, 0, 4, false },
		{ manyLayer.getBitmapHandle(L"images/block2.bmp"), 0, 300, 4, false },
		{ manyLayer.getBitmapHandle(L"images/block3.bmp"), 0, 600, 4, false },
	};

	manyLayer.imageCount = 3;

	manyLayer.texts = (Text[]){
		{ L"테스트1", 0, 0, 48, 64, 600, L"굴림", RGB(255, 255, 255), false },
		{ L"테스트2", 0, 300, 48, 64, 600, L"굴림", RGB(255, 255, 255), false },
		{ L"테스트3", 0, 600, 48, 64, 600, L"굴림", RGB(255, 255, 255), false },
	};

	manyLayer.textCount = 3;

	manyLayer.renderAll(&manyLayer);

	return 0;
}

출력 결과

image

텍스트는 언제나 이미지 위에 출력됩니다