游戏开发论坛

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

求助,CEGUI的问题...谢谢...

[复制链接]

2

主题

3

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2010-4-17 10:25:00 | 显示全部楼层 |阅读模式
本人刚刚接触OGRE,现在学习wiki中OGRE指南初级教程当中的CEGUI部分,遇到个问题:
按照上面的配置要求以及源码,自己新建工程,前几章的例子都可以运行,但到了CEGUI却不可以,
老提示我MouseMotionListern未定义基类!


class GuiFrameListener : public ExampleFrameListener, public MouseMotionListener, public MouseListener
{
private:
        CEGUI::Renderer* mGUIRenderer;
        bool mShutdownRequested;
public:
        // NB using buffered input
        GuiFrameListener(RenderWindow* win, Camera* cam, CEGUI::Renderer* renderer)
                : ExampleFrameListener(win, cam, true, true),
                mGUIRenderer(renderer),
                mShutdownRequested(false)
        {
                mEventProcessor->addMouseMotionListener(this);
                mEventProcessor->addMouseListener(this);
                mEventProcessor->addKeyListener(this);
        }
        // Tell the frame listener to exit at the end of the next frame
        void requestShutdown(void)
        {
                mShutdownRequested = true;
        }
        bool frameEnded(const FrameEvent& evt)
        {
                if (mShutdownRequested)
                        return false;
                else
                        return ExampleFrameListener::frameEnded(evt);
        }
        void mouseMoved (MouseEvent *e)
        {
                CEGUI::System::getSingleton().injectMouseMove(
                        e->getRelX() * mGUIRenderer->getWidth(),
                        e->getRelY() * mGUIRenderer->getHeight());
                e->consume();
        }
        void mouseDragged (MouseEvent *e)
        {
                mouseMoved(e);
        }
        void mousePressed (MouseEvent *e)
        {
                CEGUI::System::getSingleton().injectMouseButtonDown(
                        convertOgreButtonToCegui(e->getButtonID()));
                e->consume();
        }
        void mouseReleased (MouseEvent *e)
        {
                CEGUI::System::getSingleton().injectMouseButtonUp(
                        convertOgreButtonToCegui(e->getButtonID()));
                e->consume();
        }
        void mouseClicked(MouseEvent* e) {}
        void mouseEntered(MouseEvent* e) {}
        void mouseExited(MouseEvent* e) {}
        void keyPressed(KeyEvent* e)
        {
                if(e->getKey() == KC_ESCAPE)
                {
                        mShutdownRequested = true;
                        e->consume();
                        return;
                }
                CEGUI::System::getSingleton().injectKeyDown(e->getKey());
                CEGUI::System::getSingleton().injectChar(e->getKeyChar());
                e->consume();
        }
        void keyReleased(KeyEvent* e)
        {
                CEGUI::System::getSingleton().injectKeyUp(e->getKey());
                e->consume();
        }
        void keyClicked(KeyEvent* e)
        {
                // Do nothing
                e->consume();
        }
};abc
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-17 09:04

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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