引入观察者类的头文件为:#include "vpObserver.h"。
观察者类视图如图6.9.1所示。本节通过编码设置获取对观察者的控制。首先,要定义观察者,其代码如图6.9.2所示。
图6.9.1 观察者类继承图
图6.9.2 定义观察者
通过一个转换vpTransform 把观察者绑定在车上,这样就可以跟随车子一起运动,观察场景。在void PublicMember::CTS_Define(void)函数中,可以看到这样的配置代码:
pObserver_myObserver->setStrategy(pMotionDrive_myMotion);(www.daowen.com)
pObserver_myObserver->addChannel(pChannel_myChannel);
pObserver_myObserver->addAttachment(pEnv_myEnv);
pObserver_myObserver->setScene(PublicMember::CTS_pScene_myScene);
pObserver_myObserver->setLookFrom(pTransform_hummerTransform);
pObject_Hummer->addChild(pTransform_hummerTransform);
pObject_Hummer->setStrategy(pMotionDrive_myMotion);
仔细分析这7行代码:第1行为观察者设置策略,设置为驾驶模式;第2行为观察者添加通道;第3行为观察者添加附属物,添加了环境;第4行为观察者设置场景;第5行为观察者设置观察方向,就是以 pTransform_hummerTransform 转换为观察起点;第六行添加pTransform_hummerTransform 转换为汽车的“孩子”;第7行为汽车设置策略,设置为驾驶模式,与观察者的策略一致。其中,第5行与第6行通过转换就把观察者绑定到了汽车上,实现了要求。下一节将通过键盘来控制汽车的运动。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。