본문 바로가기

Game Programming in C++ Chapter2 - Component

반응형

 

 

산자이 마드하브 저 / 박주항 역 ❘ 에이콘

 

책의 소스 코드를 직접 작성해보면서 정리한 글입니다. (실습환경: windows)

책 소스 코드: GitHub - gameprogcpp/code: Game Programming in C++ Code


1. Component 역할(기능)

모든 Component의 부모 클래스이다.

Actor에서는 Component 타입으로 모든 컴포넌트를 관리한다. (다형성)

//Actor.hpp
std::vector<class Component*> _components;

 

2. Component.hpp

#pragma once

class Component
{
public:
	Component(class Actor* owner);
	~Component();
	
	virtual void update(float delta_time);

protected:
	class Actor* _owner;
};

 

3. Component.cpp

Component가 생성되면, 해당 Component를 사용할 Actor에게  자동으로 등록한다.

 

#include "Actor.hpp"
#include "component.hpp"

Component::Component(Actor* owner) : _owner(owner)
{
	_owner->addComponent(this);
}

Component::~Component()
{
	_owner->removeComponent(this);
}

void Component::update(float delta_time)
{
}
반응형