键盘事件OSG(开放场景图)

时间:2013-11-28 14:28:02

标签: openscenegraph

我想知道如何输入键盘事件来控制球体?我想要一个球体并用键盘事件在屏幕上移动

1 个答案:

答案 0 :(得分:2)

OSG使用事件处理程序。只需创建一个这样的:

// KeyboardEventHandler.h
#pragma once

#include <osgGA/GUIEventHandler>

class KeyHandler : public osgGA::GUIEventHandler
{
public:
    KeyHandler()
    {}

public:
    virtual bool handle(const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter&)
    {
        switch(ea.getEventType())
        {
            case(osgGA::GUIEventAdapter::KEYDOWN):
            {
                // Place your code here...
            }

            default:
                return false;
        }
    }

    virtual void accept(osgGA::GUIEventHandlerVisitor& v)
    {
        v.visit(*this);
    }
};

现在将其连接到您的视图:

m_osgViewer->addEventHandler(new KeyHandler());

您可以将此&#34; -pointer传递给KeyboardHandler并从内部调用查看器的方法。