공부 정리/API 프로젝트 (별의 커비) 콘텐츠
2. Actor - TitleActor(타이틀)
CE : 하랑
2024. 2. 17. 21:14
TitleActor.h
#pragma once
#include<EngineCore/EngineCore.h> // GEngine
#include <EngineCore\Actor.h> // 액터 상속
class ATitleActor : public AActor
{
public:
// constrcuter destructer
ATitleActor(); // 디폴트 생성자
~ATitleActor(); // 디폴트 소멸자
// delete Function
ATitleActor(const ATitleActor& _Other) = delete; // 디폴트 복사 생성자
ATitleActor(ATitleActor&& _Other) noexcept = delete;
ATitleActor& operator=(const ATitleActor& _Other) = delete; // 디폴트 대입 연산자
ATitleActor& operator=(ATitleActor&& _Other) noexcept = delete;
protected:
void BeginPlay() override;
void Tick(float _DeltaTime) override;
private:
// 이미지 랜더
UImageRenderer* TitleRenderer = nullptr;
UImageRenderer* LogRenderer = nullptr;
UImageRenderer* StartRenderer = nullptr;
// 윈도우 크기
FVector windowScale = GEngine->MainWindow.GetWindowScale();
};
(1) BeginPlay()
void ATitleActor::BeginPlay()
{
AActor::BeginPlay();
TitleRenderer = CreateImageRenderer(ERenderOrder::TitleMap); // 이미지 랜더 생성
TitleRenderer->SetImage("Mapback.png"); // 이미지 Set
TitleRenderer->SetTransform({ {0,0}, {1900,1100} }); // 액터에서의 렌더(이미지) 위치 및 크기 설정
LogRenderer = CreateImageRenderer(ERenderOrder::Log); // 이미지 랜더 생성
LogRenderer->SetImage("Log.png"); // 이미지 Set
LogRenderer->SetTransform({ { 0,50 }, windowScale });
StartRenderer = CreateImageRenderer(ERenderOrder::Log); // 이미지 랜더 생성
StartRenderer->SetImage("Text.png"); // 이미지 Set
StartRenderer->SetTransform({ { 200,250 }, {64*10, 64*8} });
// 애니메이션 생성 및 실행
// 배경 애니메이션
TitleRenderer->CreateAnimation("Mapback", "Mapback.png", 0, 4, 3.0f, true);
TitleRenderer->ChangeAnimation("Mapback");
// Ready 애니메이션
StartRenderer->CreateAnimation("Ready", "Text.png", 0, 10, 0.5f, false);
StartRenderer->ChangeAnimation("Ready");
}
- 랜더링 생성
- 애니메이션 생성 및 실행