您的位置:首页 > 其它

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

2010-07-22 20:46 316 查看
简介


三月份的时候,我接到一个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();
  }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐