응애맘마조
이동 제한 본문
사각형 내 오브젝트의 이동 범위를 한정하는 게 과제였습니다. 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;
}
코드입니다.
읽어주셔서 감사합니다.
'공부 > 2D과제' 카테고리의 다른 글
쿠키런 1탄 : 달리기, 점프, 2단 점프, 슬라이드 (0) | 2023.01.20 |
---|---|
슬라이드 퍼즐 (2) | 2023.01.18 |
deque, map (0) | 2023.01.17 |
잔상 만들기 (0) | 2023.01.16 |
오브젝트 충돌 (0) | 2023.01.12 |