[IPhone] 观察者模式与游戏开发

长平狐 发布于 2012/10/08 15:19
阅读 116
收藏 0

简介
三月份的时候,我接到一个IPhone游戏项目的开发,为了这个游戏,我学习了观察者模式,并使用它在我的游戏里
背景
在我的游戏中,我设计的GameScene来当作游戏关卡的上层类,它继承Observable,利用GameRole来实践游戏角色

像是Player跟NPC,GameRole则实践Observer

利用观察者模式,来实践关卡中的角色的更新

UML


Observer Code

class Observable;
class Observer : public NSObject
{
private:
  // --- Add private member --- //
public:
  // --- Add public member --- //
  Observer();
  virtual ~Observer();
  virtual void Update() = 0;
};
typedef set<observer*> SET;
class Observable : public NSObject
{
private:
  // --- Add private member --- //
  SET m_observers;
public:
  // --- Add public member --- //
  Observable();
  virtual~Observable();
  void RegisterObserver(Observer *o);
  void RemoveObserver(Observer *o);
  void NotifyObservers();
};
void Observable::RegisterObserver(Observer *o)
{
  m_observers.insert(o);
}
void Observable::RemoveObserver(Observer *o)
{
  m_observers.erase(o);
}
void Observable::NotifyObservers()
{
  SET::reverse_iterator index;
  SET::reverse_iterator end = m_observers.rend();
  for(index = m_observers.rbegin(); index != end; index++)
  {
      ((Observer*)(*index))->Update();
  }
}
 


原文链接: http://blog.csdn.net/cloudhsu/article/details/5756311
加载中
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部