c++ - 无法在 SFML 2.4 中存储文本

标签 c++ sfml

我正在使用 sfml 库进行某种图形工作,我想存储我使用键盘输入的文本,但它显示错误 请告诉我这是怎么可能的:

#include <SFML/Graphics.hpp>
#include <iostream>
#include <string> 
using namespace std; 
int main()
{
   string s="";
   sf::Window window(sf::VideoMode(800, 200), "Ludo",sf::Style::Default);
   window.setKeyRepeatEnabled(false);
    while (window.isOpen())
    {
        sf::Event event;
            while (window.pollEvent(event))
            {
               if (event.type == sf::Event::Closed)
                {
                   window.close();
                }
               else if (event.type == sf::Event::EventType::TextEntered)
               {
                   s += event.type.unicode;
               }
           }
          window.display();
    }
    return 0;
 }

错误是:

sf::Event event, expression must have a class type

最佳答案

你的问题是这一行:

s += event.type.unicode;

event.type 是一个描述事件类型的字段(您在上面的案例检查中使用了它)。

然后您尝试访问成员 unicode,这显然失败了,因为 type 在这里不是类或结构。您真正想要的是字段 sf::Event::text,它是一个结构。

因此,这一行必须如下所示:

s += event.text.unicode;

关于c++ - 无法在 SFML 2.4 中存储文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47846411/

相关文章:

c++ - 在调试中损坏堆时如何强制 VS 2010 中断?

C++ - 动态阴影转换

c++ - 在 C++ 中存储和操作大量数据的想法

c++ - 如何重载赋值运算符以满足ob1=ob2=ob3(ob1、ob2、ob3是同一类的对象)

c++ - 如何比较 sfml 中的位置?

c++ - 函数没有导致错误,但它不会返回到程序

c++ - 在 C++ 中创建 pacman 碰撞检测的困难

c++ - 使用重叠 IO 写入文件与在单独线程中写入文件

c++ - SFML 尝试让 Sprite 跟踪鼠标

c++ - 如何将实际的 sf::Sprite 对象保存在数组或 vector 中? C++