공부 정리/API 프로젝트 (별의 커비) 콘텐츠
3. Actor - Stage1_Map
CE : 하랑
2024. 2. 18. 14:48
Stage1_Map.h
#pragma once
#include <EngineCore/Actor.h> // 상속
// 맵은 우선 잠시 대기
class AStage1_MAP : public AActor
{
public:
// constrcuter destructer
AStage1_MAP(); // 디폴트 생성자
~AStage1_MAP(); // 디폴트 소멸자
// delete Function
AStage1_MAP(const AStage1_MAP& _Other) = delete; // 디폴트 복사 생성자
AStage1_MAP(AStage1_MAP&& _Other) noexcept = delete;
AStage1_MAP& operator=(const AStage1_MAP& _Other) = delete; // 디폴트 대입 연산자
AStage1_MAP& operator=(AStage1_MAP&& _Other) noexcept = delete;
void SetMapImage(std::string_view _MapImageName); // 맵 이미지 Set
void SetColMapImage(std::string_view _MapImageName); // 픽셀 충돌 맵 이미지 Set
void SwitchDebug();
protected:
void BeginPlay() override;
void Tick(float _DeltaTime) override;
private:
UImageRenderer* MapRenderer = nullptr; // 렌더링
UImageRenderer* MapColRenderer = nullptr; // 콜리전 -> 픽셀 충돌
};
(1) SetMapImage
void AStage1_MAP::SetMapImage(std::string_view _MapImageName)
{
MapRenderer->SetImage(_MapImageName); // 이미지 Set
UWindowImage* Image = MapRenderer->GetImage(); // Set한 이미지 값을 받고
FVector ImageScale = Image->GetScale(); // 이미지 크기를 저장
MapRenderer->SetTransform({ ImageScale.Half2D(), ImageScale });
// 이미지의 X축 Y축 절반의 위치에 이미지 크기만 크기만큼 랜더링
}
- 이미지 Set
- 이미지 크기만큼 랜더
(2) SetColMapImage()
void AStage1_MAP::SetColMapImage(std::string_view _MapImageName)
{
MapColRenderer->SetImage(_MapImageName);
UWindowImage* Image = MapColRenderer->GetImage();
UActorCommon::ColMapImage = Image; // 픽셀 충돌할 맵 설정
FVector ImageScale = Image->GetScale();
MapColRenderer->SetTransform({ ImageScale.Half2D(), ImageScale });
}
- 이미지 Set
- 이미지 크기만큼 랜더
- 픽셀 충돌 맵 설정