c++ - AntTweakBar 不注册 SFML 鼠标事件

标签 c++ input game-engine

我正在尝试添加 GUI 以便在我们的游戏引擎中更轻松地编辑关卡。我们将 SFML 用于所有基本内容(窗口管理、输入事件等)。我选择 AntTweakBar 是因为它是一个众所周知的库,周围有一些示例。我正在按照 AntTweakBar's website 上的教程进行操作

我能够使用这些示例代码绘制一个简单的条形图。但是,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 元素(无论是按钮还是帮助部分)时,它不会注册它。 (另外,当我使用鼠标时,我看不到“FINALLY!”)。

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

最佳答案

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

关于c++ - AntTweakBar 不注册 SFML 鼠标事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35388180/

相关文章:

c++ - 十六进制或二进制数中的数字之前是否允许使用数字分隔符?

java - 如何通过单击按钮添加新的输入字段 Spring/Java/Thymeleaf

c++ - 如何将文件中的数据存储到具有 vector 成员的结构 vector 中

java - LibGDX : Dividing audio file

game-engine - 编写游戏循环时的困惑

c++ - 成功返回局部变量的引用

c++ - delete[] 在 C++ 中真的有效吗?

c++ - 当两个共享库定义相同的符号时实际发生了什么?

jQuery 占位符插件 - 我做错了什么?

java - Java 中的游戏 : rotating selected object