C00_LoadingScene.cpp
#include "framework.h"
#include "C00_LoadingScene.h"
#include "ISAAC/Objects/CProgressBar.h"
C00_LoadingScene::C00_LoadingScene()
{
Vector2 a = Vector2(1, 0);
Vector2 b = Vector2(0, 1);
float dot = Vector2::Dot(a, b);
SetActive(true);
Name = "C00_LoadingScene";
Background = new CSprite(L"Image/CrossCode/UI/black.png");
Background->Scale() = Vector2(0.6f, 0.6f);
Background->Pos() = Vector2(0.0f, 100.f);
wstring foreground = L"Image/CrossCode/UI/progress.png";
wstring background = L"Image/CrossCode/UI/progress_back.png";
ProgressBar = new CProgressBar(foreground, background);
ProgressBar->Pos() = Vector2(5, 0);
ProgressBar->Scale() = Vector2(0.5f, 0.5f);
SOUND->AddSound("BGM", L"Sounds/m_chest room chapter 6.ogg",true);
SOUND->Play("BGM",1.0f); // 최대 크기는 1.0
}
C00_LoadingScene::~C00_LoadingScene()
{
SAFE_DELETE(Background);
}
void C00_LoadingScene::Update()
{
static int no = 0;
static float delta;
delta = delta + TIMER->Delta();
if (delta >= 0.2f)
{
no=no+10;
if (no >= 100)
{
no = 100;
}
delta = 0.0f;
}
if (no == 100)
{
if (KEYBOARD->Down(VK_RETURN))
{
SOUND->Stop("BGM");
CSceneManager::GetInstance()->ChangeScene("C01_SelectScene");
return;
}
}
Vector2 pos = Vector2(200, 200);
CAMERA->WCtoVC(pos);
Background->Update();
ProgressBar->SetHP(no);
ProgressBar->Update();
}
void C00_LoadingScene::Render()
{
Background->Render();
ProgressBar->Render();
}
void C00_LoadingScene::Enter()
{
}
void C00_LoadingScene::Exit()
{
}
void C00_LoadingScene::GUIRender()
{
ProgressBar->GUIRender();
}
void C00_LoadingScene::PostRender()
{
wstring temp = L"글자 Test";
DIRECT->GetDC()->BeginDraw();
{
DIRECT->RenderText(temp, Vector2(0, 0), 255, 0, 0, 40.0f);
}
DIRECT->GetDC()->EndDraw();
ProgressBar->PostRender();
}
C00_LoadingScene.h
#pragma once
class CProgressBar;
class C00_LoadingScene : public CScene
{
public:
C00_LoadingScene();
~C00_LoadingScene();
public:
void Update() override;
void Render() override;
void Enter() override;
void Exit() override;
void GUIRender() override;
void PostRender() override;
private:
CSprite* Background = nullptr;
CProgressBar* ProgressBar = nullptr;
};
C01_SelectScene.cpp
#include "framework.h"
#include "C01_SelectScene.h"
C01_SelectScene::C01_SelectScene()
{
SetActive(false);
SetName("C01_SelectScene");
CreateAnimation();
Clouds1 = new CSprite(L"Image/CrossCode/title/clouds-1.png");
Clouds2 = new CSprite(L"Image/CrossCode/title/clouds-2.png");
Ground = new CSprite(L"Image/CrossCode/title/ground.png");
Planet = new CSprite(L"Image/CrossCode/title/planet.png");
Railings = new CSprite(L"Image/CrossCode/title/railings.png");
Sky = new CSprite(L"Image/CrossCode/title/sky.png");
Logo = new CSprite(L"Image/CrossCode/title/logo.png");
// Lea Animation
{
wstring imgFile = L"Image/CrossCode/title/lea.png";
Lea = new CAnimation(imgFile);
Lea->AddClip(CAnimation::Loop, "Loading");
for (int i = 0; i < 6; i++)
{
Lea->AddFrame(imgFile, i * 553, 0, (i + 1) * 553, 735, 0.1f);
}
for (int k = 5; k >= 0; k--)
{
Lea->AddFrame(imgFile, k * 553, 0, (k + 1) * 553, 735, 0.1f);
}
}
Sky->Pos() = Vector2(0.0f, 0.0f); // 하늘 이미지 위치
Clouds1->Pos() = Vector2(100.0f, -250.0f); // 첫 번째 구름 위치
Clouds2->Pos() = Vector2(0.0f, -50.0f); // 두 번째 구름 위치
Planet->Pos() = Vector2(-500.0f, 150.0f); // 행성 위치
Railings->Pos() = Vector2(0.0f, -395.0f); // 난간 위치
Ground->Pos() = Vector2(0.0f, -355.0f); // 지면 위치
Logo->Pos() = Vector2(80.0f, 180.0f); // 로고 위치
Lea->Pos() = Vector2(570.0f, -150.0f);
Logo->Scale() = Vector2(0.7f, 0.7f);
CreateButtons();
}
C01_SelectScene::~C01_SelectScene()
{
SAFE_DELETE(Lea);
}
void C01_SelectScene::Update()
{
Sky->Update(); // 하늘 배경
Clouds1->Update(); // 첫 번째 구름
Clouds2->Update(); // 두 번째 구름
Planet->Update(); // 행성
Railings->Update(); // 난간
Ground->Update(); // 땅
Logo->Update(); // 로고
Lea->Update();
Button_1->Update();
Button_2->Update();
Button_3->Update();
Button_4->Update();
Button_5->Update();
}
void C01_SelectScene::Render()
{
Sky->Render(); // 하늘 배경
Planet->Render(); // 행성
Clouds1->Render(); // 첫 번째 구름
Clouds2->Render(); // 두 번째 구름
Railings->Render(); // 난간
Ground->Render(); // 땅
Logo->Render(); // 로고
Lea->Render();
Button_1->Render();
Button_2->Render();
Button_3->Render();
Button_4->Render();
Button_5->Render();
}
// 신이 변경될때 진입되는 함수
void C01_SelectScene::Enter()
{
SetActive(true);
}
void C01_SelectScene::Exit()
{
}
void C01_SelectScene::GUIRender()
{
}
void C01_SelectScene::PostRender()
{
}
void C01_SelectScene::CreateButtons()
{
// 각 버튼의 좌표와 크기를 지정합니다.
Button_1 = new CSprite(bt_Image, 0, 0, 486, 72); // 예: x=0, y=0, width=100, height=50
Button_2 = new CSprite(bt_Image, 0, 72, 486, 144); // 예: x=100, y=0, width=100, height=50
Button_3 = new CSprite(bt_Image, 0, 144, 486, 216); // 예: x=0, y=50, width=100, height=50
Button_4 = new CSprite(bt_Image, 0, 216, 486, 288); // 예: x=100, y=50, width=100, height=50
Button_5 = new CSprite(bt_Image, 0, 288, 486, 360); // 예: x=0, y=100, width=100, height=50
Button_1->Scale() = Vector2(0.7f, 0.7f);
Button_2->Scale() = Vector2(0.7f, 0.7f);
Button_3->Scale() = Vector2(0.7f, 0.7f);
Button_4->Scale() = Vector2(0.7f, 0.7f);
Button_5->Scale() = Vector2(0.7f, 0.7f);
// 위치를 설정합니다.
Button_1->Pos() = Vector2(-475.0f, 0.0f); // 각 버튼의 위치 설정 (화면 내에서의 위치)
Button_2->Pos() = Vector2(-475.0f, -72.0f);
Button_3->Pos() = Vector2(-475.0f, -144.0f);
Button_4->Pos() = Vector2(-475.0f, -216.0f);
Button_5->Pos() = Vector2(-475.0f, -288.0f);
}
void C01_SelectScene::CreateAnimation()
{
}
void C01_SelectScene::EndClip(string clipName)
{
printf("%s\n", clipName.c_str());
if (clipName == "Part5")
{
//CSceneManager::GetInstance()->ChangeScene("S02_InGame");
}
}
C01_SelectScene.h
#pragma once
class C01_SelectScene : public CScene
{
public:
C01_SelectScene();
~C01_SelectScene();
public:
void Update() override;
void Render() override;
void Enter() override;
void Exit() override;
void GUIRender() override;
void PostRender() override;
public:
void CreateButtons();
private:
void CreateAnimation();
void EndClip(string InValue);
private:
CAnimation* Lea = nullptr;
CSprite* Clouds1 = nullptr;
CSprite* Clouds2 = nullptr;
CSprite* Ground = nullptr;
CSprite* Planet = nullptr;
CSprite* Railings = nullptr;
CSprite* Sky = nullptr;
CSprite* Logo = nullptr;
private:
CSprite* Button_1 = nullptr;
CSprite* Button_2 = nullptr;
CSprite* Button_3 = nullptr;
CSprite* Button_4 = nullptr;
CSprite* Button_5 = nullptr;
wstring bt_Image = L"Image/CrossCode/title/button_title.png";
};
결과물
