C++에서 게임을 만들다 보면

버튼을 눌렀을때 특정 행동을 수행해야 할때가 많다.

이때 싱글톤이나 이런거로 다 처리할수는 없기 때문에

Delegate (델리게이트)를 이용해서 처리하는게 좋다.

원래 이개념은 C++의 콜백함수에서 발전된 C#에서 만들어진 내용이다.

UIButton 클래스 위에 iButtonDelegate라는 클래스를 생성했다.

다음은 포인터로 생성했다.

(SYNTHESIZE는 매크로 함수로 사용하고 있는데 여기서는 iButtonDelegate* m_pDelegate를 만든거라고 이해하면 된다.

버튼을 생성할때 이렇게 자기자신의 주소를 넣어준다.

다음 해당 클래스 (cMainGame)에서 OnClick에 대해 이렇게 구현되어 있기 때문에 클릭하게 되면 OK로 바뀌면서 확인이라는 글씨가 출력된다.


요약 

1. OnClick이라는 가상함수를 가진 클래스를 만든다. 파라미터(인자)로 주소를 받게한다.

2. OnClick이라는 함수를 실행했을때 원하는 동작을 해당 클래스에 구현한다.

3. SetDelegate를 통해 자신의 주소를 넘겨주면 된다.

+ Recent posts