摘要: OGRE的OIS系统:
这次仅举个Mouse系统,我也只是为了说明其中的原理而改;
在ogre中,frameStarted接口中mMouse->capture();在此这前先注册这个监听器,不过它的名字
叫做mMouse->setEventCallback(this);所以mMouse->register(this)是一样的;因为capture是一直循环的,所以也是一直事件等待发生,
像程序的框架已经生成,一般的程序都会继承Public OIS::MouseListener,所以下面其中的方法也重载
其中可能说的不够很明白,有什么问题可以MSN或是给我留言...  阅读全文

posted @ 2008-05-23 20:02 RichardHe 阅读(175) | 评论 (0)编辑 收藏

     摘要: 环境变量;一些DLL可以集中在一起,如可以放在一个文件夹目录下.
然后设置环境变量.在变量Path的值的后面添加把这个文件夹路径加在后面

提一个问题:
为什么一定要在Path变量;为什么不可以自定义一个变量,再把值设为文件夹路径???

注册一个窗口(RegisterClass)
一旦创建一个窗口(CreateWindow)一直循环进行消息转换和派遣
while( PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
再运行窗口注册时的回调函数  阅读全文

posted @ 2008-05-22 18:13 RichardHe 阅读(180) | 评论 (0)编辑 收藏

     摘要: 事件订阅,subscribeEvent(事件名,Event::subcribe(回调函数);
方法subcribe通过一个Map Container;
typedef std::multimap SlotContainer,添加到容器中,
d_slots.insert(std::pair(group,c));而在事件触发时,
Event操作()遍历每个订阅事件的函数,代码如下:
for (; iter != end_iter; ++iter)
args.handled |= (*iter->second->d_subscriber)(args);
这样订阅事件的函数都会遍历回调到!

遇见一个CEGUI的设计问题
有的是函数指针,而有的是类型的别名?比如:
typedef bool (*SortCallback)(const ItemEntry* a, const ItemEntry* b);
typedef   阅读全文

posted @ 2008-05-21 16:47 RichardHe 阅读(176) | 评论 (0)编辑 收藏

     摘要: CEGUI的事件监听器又是如何实现的呢?
对于控件,每种控件有自己的事件,如:EventKeyUp等;每个事件后面可以挂着N个事件的回调方法;
event:function1,function2......
对控件订阅事件,如button->subscribeEvent(CEGUI::Windos::EventKeyUp,CEGUI:Event::Subscriber(&function,this));
把事件EventKeyUp注册到button中,并且在事件响应时回调函数fuction

内部实现机制是怎么样的呢?内部好像通过一个Map来查找到这个事件,但是又是如何响应到function的呢?哪位大哥指点下?  阅读全文

posted @ 2008-05-20 16:34 RichardHe 阅读(227) | 评论 (0)编辑 收藏

     摘要: 监听器的注册与使用,也就是设计模式中的观察模式(observer),一对多关系
update的参数应该是subject,可以这样认为,如果把subject当作老师,observer当作学生的
话,那就比较容易明白了,update(subject* sub),也就是老师的状态发生改变时,学生也要
发生改变,并且发的变化是由老师这个参数来决定;定,既对老师进行监听  阅读全文

posted @ 2008-05-19 16:26 RichardHe 阅读(942) | 评论 (0)编辑 收藏

仅列出标题
共19页: First 6 7 8 9 10 11 12 13 14 Last 

posts - 94, comments - 138, trackbacks - 0, articles - 94

Copyright © RichardHe