응애맘마조
끝 없는 그리드 본문
카메라를 이동해도 끝이 나지 않고 계속 이어지는 그리드를 그리는 것이 과제였습니다. 이번에는 그리드를 클래스로 따로 만들었습니다.
//Grid.h
#pragma once
//특수하게 움직이는 액터
class Grid : public Actor
{
public:
static Grid* Create(string name = "Grid");
private:
Grid();
virtual ~Grid();
public:
void Update() override;
void Release() override;
};
Grid.h입니다.
//Grid.cpp
#include "framework.h"
Grid* Grid::Create(string name)
{
Grid* temp = new Grid();
temp->mesh = make_shared<Mesh>();
temp->LoadFile("1.Grid.mesh");
temp->name = name;
return temp;
}
void Grid::Release()
{
for (auto it = children.begin(); it != children.end(); it++)
{
SafeRelease(it->second);
}
delete this;
}
Grid::Grid()
{
}
Grid::~Grid()
{
}
void Grid::Update()
{
scale.z = scale.x;
float X = (int)(Camera::main->GetWorldPos().x / scale.x);
X *= scale.x;
float Z = (int)(Camera::main->GetWorldPos().z / scale.x);
Z *= scale.x;
SetWorldPosX(X);
SetWorldPosZ(Z);
Actor::Update();
}
Grid.cpp입니다.
그리드의 크기를 늘려도 반드시 정사각형 크기로 늘릴 수 있게 했고 카메라의 움직임에 상관없이 일정하게 움직이도록 했습니다.
실행 영상입니다.
읽어주셔서 감사합니다.
Comments