gpt4 book ai didi

c++ - 警告: 'enum sf::Keyboard::Key'和 'enum sf::Mouse::Button'之间的比较[-Wenum-compare] |

转载 作者:行者123 更新时间:2023-12-02 10:11:09 26 4
gpt4 key购买 nike

我将C++图形中的SFML libraby用于我的国际象棋游戏。
当您在游戏中移动棋子时,会发生鼠标左键事件。所以这是我最初的跟踪方式。

sf::Event e;
if (e.type == sf::Event::MouseButtonReleased){
if(e.key.code == sf::Mouse::Left){
//Do something
}
}
这给出了以下编译 警告
|1175|warning: comparison between 'enum sf::Keyboard::Key' and 'enum sf::Mouse::Button' [-Wenum-compare]|

该代码仍将正确执行。
  • 为什么会出现此问题?
  • 如何避免此警告?
  • 最佳答案

    key(即sf::Event)中的成员sf::Event::key是来自枚举sf::Keyboard::Key的枚举器,而枚举器sf::Mouse::Left属于枚举sf::Mouse::Button
    原则上,在处理事件keysf::Event时,您只应对sf::Event::KeyPressed中的并集的sf::Event::KeyReleased成员感兴趣。
    在处理事件sf::Event::MouseButtonReleased时,正在将联合中的错误数据成员(sf::Event::key)与枚举器sf::Mouse::Left相比较。尝试与e.mouseButton.button比较:

    sf::Event e;
    if (e.type == sf::Event::MouseButtonReleased){
    if (e.mouseButton.button == sf::Mouse::Left){
    //Do something
    }

    关于c++ - 警告: 'enum sf::Keyboard::Key'和 'enum sf::Mouse::Button'之间的比较[-Wenum-compare] |,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63527662/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com