我想知道如何输入键盘事件来控制球体?我想要一个球体并用键盘事件在屏幕上移动
答案 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并从内部调用查看器的方法。