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를 인스턴스에 맞게 재정의하여 사용한다.
- 매 프레임마다 개체들을 업데이트하는 것으로 업데이트 메서드 패턴은 단순하다.
반응형
'Design Pattern > 게임 프로그래밍 패턴' 카테고리의 다른 글
[Design Pattern] 하위 클래스 샌드박스 패턴 (0) | 2022.08.02 |
---|---|
[Design Pattern] 바이트 코드 패턴 (0) | 2022.08.02 |
[Design Pattern] 게임 루프 패턴 (0) | 2022.07.31 |
[Design Pattern] 상태 패턴 (0) | 2022.07.31 |
[Design Pattern] 싱글턴 패턴 (0) | 2022.07.30 |