공부/2D과제
이동 제한
TH.Wert
2023. 1. 17. 16:41
사각형 내 오브젝트의 이동 범위를 한정하는 게 과제였습니다. Saturate를 사용했습니다.
//main.cpp
#include "stdafx.h"
#include "Main.h"
void Main::Init()
{
lim = new ObRect();
lim->scale = Vector2(300.0f, 300.0f);
lim->color = Color(0.0f, 0.0f, 0.0f, 1.0f);
lim->isFilled = false;
cam = new ObRect();
cam->scale = Vector2(100.0f, 100.0f);
cam->color=Color(0.0f, 0.0f, 0.0f, 1.0f);
cam->isFilled = false;
cc = new ObCircle();
cc->scale = Vector2(20.0f, 20.0f);
cc->color = Color(0.0f, 0.0f, 0.0f, 1.0f);
cc->isFilled = false;
}
void Main::Release()
{
SafeDelete(lim);
SafeDelete(cam);
SafeDelete(cc);
}
void Main::Update()
{
lim->Update();
cam->Update();
cc->Update();
}
void Main::LateUpdate()
{
cam->SetWorldPos(INPUT->GetWorldMousePos());
cc->SetWorldPos(INPUT->GetWorldMousePos());
cc->SetWorldPosX(Utility::Saturate(cam->GetWorldPos().x, -150.0f, 150.0f));
cc->SetWorldPosY(Utility::Saturate(cam->GetWorldPos().y, -150.0f, 150.0f));
cc->Update();
}
void Main::Render()
{
lim->Render();
cam->Render();
cc->Render();
}
void Main::ResizeScreen()
{
}
int WINAPI wWinMain(HINSTANCE instance, HINSTANCE prevInstance, LPWSTR param, int command)
{
app.SetAppName(L"Game2");
app.SetInstance(instance);
app.InitWidthHeight(1400.0f, 800.0f);
WIN->Create();
Main* main = new Main();
int wParam = (int)WIN->Run(main);
SafeDelete(main);
WIN->Destroy();
WIN->DeleteSingleton();
return wParam;
}
코드입니다.
읽어주셔서 감사합니다.