2013-06-07 6 views
0

Ogre3을 사용하여 적군의 복사본을 자동으로 만들어서 세계에 떨어 뜨리는 Spawner를 만들려고합니다. 이 외에도 엔티티가 스폰 될 때 세계로 떨어지 자마자 행동에 참여할 수 있도록 비헤이비어 함수를 저장하려고합니다. 이것이 가능한지 궁금합니다. 나는이 같은 서명으로 함수 포인터를 재 할당의 생각 대접했다 :컴파일 후 함수 포인터 변경

무효 setBehavior (무효 (* 행동) (적))

을 다음 어딘가에 동작을 저장합니다. 이 아이디어를 어떻게 성취 할 수 있을까요?

+0

std :: function을 사용 하시겠습니까? – Spook

답변

0

'전략'디자인 패턴을 읽으십시오.

구현 위주의 함수 포인터로 충분할 수 있습니다. 더 일반적인 방법은 다른 전략을 구현하는 클래스 계층 구조를 구현하는 것입니다. unique_ptr<IStrategy> 또는 비슷한 것으로 저장됩니다. std::function도 고려할 가치가 있습니다.