2016-02-14 43 views
1

我正在尝试添加GUI,以便在我们的游戏引擎中进行更容易的级别编辑。我们使用SFML处理所有基本的东西(窗口管理,输入事件等)。我选择了AntTweakBar,因为它是一个众所周知的库,附有一些示例。我正在按照教程AntTweakBar's websiteAntTweakBar不注册SFML鼠标事件

我能够用这些示例代码绘制一个简单的栏。但是,由SFML接收的鼠标事件不会被AntTweakBar的TwEventSDL()函数注册。下面是输入一个代码示例:“终于”

sf::Event event; 
while (_pWindow->pollEvent(event)) 
    { 
     // Check if the event should be handled by AntTweakBar 
     int handled = TwEventSFML(&event, 2, 3); // for SFML version 2.3 
     if (!handled){ 
      switch (event.type) 
      { 
      case sf::Event::MouseButtonPressed: // To check whether SFML received mouse button events properly 
       if (event.mouseButton.button == sf::Mouse::Button::Left){ 
        std::cout << "Left button pressed" << std::endl; 
        std::cout << "x: " << event.mouseButton.x << std::endl; 
        std::cout << "y: " << event.mouseButton.y << std::endl; 
       } 
      } 
     } 
     else{ //To check whether TwEventSFML received events 
      std::cout << "FINALLY!" << std::endl; 
     } 

当我按下按钮,我可以看到出现。我还可以看到我的鼠标点击被SFML接收。但是,当我点击AntTweakBar元素(无论是按钮还是帮助部分)时,它不会注册它。 (另外,当我使用鼠标时,我看不到“最后!”)。

任何帮助或想法,将不胜感激。

回答

1

Anttweakbar在3年内没有更新,最后一次SFML集成是针对SFML 1.6 您使用的是什么版本的SFML? 如果不是1.6,那么你必须为它创建你自己的输入处理程序。