3_observer
#Observer 成就系统
achievements system
玩家完成某种成就后,通知监督者,监督者做出相应出来 ```
//简单来说就是事件触发的时候, 通知监督者 class Observer
{
public:
virtual ~Observer() {}
virtual void onNotify(const Entity& entity, Event event) = ;
}; class Achievements : public Observer
{
public:
virtual void onNotify(const Entity& entity, Event event)
{
switch (event)
{
case EVENT_ENTITY_FELL:
if (entity.isHero() && heroIsOnBridge_)
{
unlock(ACHIEVEMENT_FELL_OFF_BRIDGE);
}
break; // Handle other events, and update heroIsOnBridge_...
}
} private:
void unlock(Achievement achievement)
{
// Unlock if not already unlocked...
} bool heroIsOnBridge_;
}; class Subject
{
private:
Observer* observers_[MAX_OBSERVERS];
int numObservers_; public:
void addObserver(Observer* observer)
{
// Add to array...
} void removeObserver(Observer* observer)
{
// Remove from array...
} protected:
void notify(const Entity& entity, Event event)
{
for (int i = ; i < numObservers_; i++)
{
observers_[i]->onNotify(entity, event);
}
} };
``` 语言绑定: java mvc
c# event 其他例子: ```
ui得到数据改变的通知
数据改变,ui即时表现出来
```
3_observer的更多相关文章
随机推荐
- Java 获取指定日期的方法汇总
import java.text.DateFormat; import java.text.ParsePosition; import java.text.SimpleDateFormat; impo ...
- ps -ef 和 aux 区别
Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信 ...
- D-hdu 1465 不容易系列之一(递推)
hdu 1465 不容易系列之一(错排) 不容易系列之一 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K ( ...
- 让Xcode支持高版本系统设备真机测试
最新支持11.2 (15C107) Xcode只可以支持iPhone手机对应iOS系统以下的真机测试.一般想要支持最新的iPhone手机系统,有两个方法. 第一.就需要更新Xcode,这一个方法有一个 ...
- word2vec_basic.py
ssh://sci@192.168.67.128:22/usr/bin/python3 -u /home/win_pymine_clean/feature_wifi/word2vec_basic.py ...
- python爬虫之Selenium
Selenium的使用 #!/usr/bin/env python # -*- coding:utf-8 -*- """ Selenium是一个第三方模块,可以完全模拟用 ...
- genymotion device manager列表没有
1.第一种原因:链接Genymotion官网的网络超时,无法加载Genymotion device列表,解决办法百度一下:配置Genymotion代理服务器,联网下载 2.第二种可能:检查是否正确安装 ...
- $ php app/console fos:user:promote
$ php app/console fos:user:create Please choose a username:admin Please choose an email:admin21@dwq ...
- 前端基础-CSS属性操作
前端基础-CSS属性操作 css text 文本颜色:color 颜色属性被用来设置文字的颜色. 颜色是通过CSS最经常的指定: 十六进制值 - 如: #FF0000 一个RGB值 - 如: RGB( ...
- import与import static
import ......className (静态导入) 功能: 导入一个类 import static ......className.* 功能:导入这个类里的静态方法,是JDK1.5中的新特性, ...