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 좌표, 배율, 출력 안 함 여부 }
를 추가해주시고, 배열의 길이를 위 코드와 같이 추가해주시면 됩니다
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 좌표, 가로 길이, 세로 길이, 굵기, 색깔, 출력 안 함 여부 }
를 추가해주시고, 배열의 길이를 위 코드와 같이 추가해주시면 됩니다
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;
}
텍스트는 언제나 이미지 위에 출력됩니다