728x90

1. 업데이트 메서드 패턴 정의

  • 컬렉션에 들어 있는 객체별로 한 프레임 단위의 작업을 진행하라고 알려줘서, 전체를 시뮬레이션하는 패턴

 

2. 업데이트 메서드 패턴 구현

class Entity
{
public:
	Entity(){}
	virtual ~Entity() {}
	virtual void Update() = 0;
};

// 해골
class Skeleton : public Entity
{
	virtual void Update() override 
	{
		// 갱신 내용1
	}
};

// 석상
class Statue : public Entity
{
	virtual void Update() override 
	{
		// 갱신 내용2
	}
};

class World
{
private:
	int NumEntities;
	Entity* Entities[ MAX_ENTITIES ];

public:
	World() : NumEntities ( 0 ) {}

	void GameLoop();
};

void World::GameLoop()
{
	while ( true )
	{
		ProcessInput();

		// 각 개체를 업데이트 한다.
		for ( int index = 0; index < NumEntities; ++index )
			Entities[ index ]->Update();

		Render( 0 );
	}
}
  • 게임은 개체 컬렉션을 관리하며, 구현된 소스에서는 게임 월드가 개체 컬렉션을 관리하도록 했다.
  • Entity를 상속받아 Update를 인스턴스에 맞게 재정의하여 사용한다.
  • 매 프레임마다 개체들을 업데이트하는 것으로 업데이트 메서드 패턴은 단순하다.

 

반응형

+ Recent posts