DirectX/DirectX 2D_(구)

DX_카메라 시점변환

컴맹학자 2021. 1. 5. 21:36
728x90

간단하게 키보드 입력에 따라 카메라의 시점을 바꿔주는 방법

 

S00_Test . cpp

더보기
#include "stdafx.h"
#include "S00_Test.h"
#include "Viewer/Following.h"

//그림 불러오기
#include "Object/Background.h"

#include "Object/Move.h"

S00_Test::S01_AABB(SceneValues * values) : Scene(values)
{
	//카메라에 대한 정보를 받아옴
	camera = values;

	//파일경로
	wstring shaderFile = L"Effect.fx";
	background = new Background(shaderFile);
	
	Ply = new Move(Vector2(0.0f, 0.0f), Vector2(3.0f, 3.0f));
	
	Ply2 = new Move(Vector2(0.0f, 10.0f), Vector2(2.0f, 2.0f));

	//카메라 제설정
	SAFE_DELETE(camera->MainCamera);
	camera->MainCamera = new Following(Ply);
}

S00_Test::~S01_AABB()
{
	SAFE_DELETE(background);
	SAFE_DELETE(Ply);
	SAFE_DELETE(Ply2);
}

void S00_Test::Update()
{
	D3DXMATRIX V = values->MainCamera->View();
	D3DXMATRIX P = values->Projection;	
	
	if (Key->Down('Q'))
	{
		camera->MainCamera = new Following(Ply2);
	}
	else if (Key->Down('E'))
	{
		camera->MainCamera = new Following(Ply);
	}
		
		
		
	background->Update(V, P);
	Ply->Update(V, P);
	Ply2->Update(V, P);
	
}

void S00_Test::Render()
{
	background->Render();
	Ply->Render();
	Ply2->Render();
}

 

S00_Test. h

더보기
#pragma once
#include "Scene.h"



class S00_Test : public Scene {
public:
	S00_Test(SceneValues* values);
	~S00_Test();

	// Scene을(를) 통해 상속됨
	void Update() override;
	void Render() override;

private:
	class Background * background;
	class Prinny * Ply;
	class Prinny * Ply2;

	Collider* col;

	SceneValues* camera;
};

 

실행