游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1163|回复: 0

OGRE小技巧 如何缓冲模式下得到鼠标的坐标

[复制链接]

193

主题

870

帖子

903

积分

高级会员

Rank: 4

积分
903
QQ
发表于 2005-4-22 19:10:00 | 显示全部楼层 |阅读模式
我不知道有没有其他方法,
当鼠标在缓冲下会发送消息给程序,
但是如果系统在之前处理了消息就无法得到消息了。
比如GUI处理。

也没办法直接得到鼠标坐标。

大家知道输入消息是先交给 Ogre::EventProcessor处理的
通过 继承Ogre::EventProcessor,截获处理之前的消息。

class MyEventProcessor : public Ogre::EventProcessor
{
System_t * mSystem;  
public:
MyEventProcessor(System_t * s);
virtual void processEvent  (  InputEvent *    e  );
};

MyEventProcessor::MyEventProcessor(System_t * s):mSystem(s)
{}

void MyEventProcessor::processEvent  (  InputEvent *    e  )
{
switch(e->getID())  
{
case MouseEvent::ME_MOUSE_PRESSED:
mSystem->mousePressed(static_cast≮MouseEvent*≯(e));
break;
case MouseEvent::ME_MOUSE_RELEASED:
mSystem->mouseReleased(static_cast≮MouseEvent*≯(e));
break;
case MouseEvent::ME_MOUSE_MOVED:
case MouseEvent::ME_MOUSE_DRAGGED:
mSystem->mouseMoveded(static_cast≮MouseEvent*≯(e));
break;

}
Ogre::EventProcessor::processEvent(e);
}

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-25 10:29

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表