我正在创建一个简单的聊天客户端和服务器,并且在呈现sf :: Text时遇到一些问题。例如说在聊天记录中。用户键入消息时,旧消息将被上推。最终,该消息到达顶部,我只想显示仍然在聊天记录中的消息部分。这是我迷路的地方。
包含文本的元素具有两个可见对象-sf :: RectangleShape(文本的背景)和一个sf :: Text。一旦它到达顶部,我就可以轻松调整形状的大小,因此在聊天记录之外不可见,但是在不扭曲内容的情况下,我无法调整文本的大小。更改字符大小显然也不理想。
如果文本的一半不在聊天记录中,我想要的是将文本水平切成两半。我的第一个想法是以某种方式掩盖它,但是SFML似乎对此不支持。
我在标题中也提到sf :: Texture的原因是因为我过去也遇到过同样的问题。我只是找不到切断它的一部分的方法,只是设法使它变形。
SFML完全有可能吗?
答案 0 :(得分:0)
一种方法是将聊天记录绘制到sf::RenderTexture,这是用于屏幕外渲染的工具。
将聊天记录绘制到渲染纹理后,就可以在屏幕上绘制纹理。
因此,如果将文本放在渲染纹理的一半,在外面的一半,则只会绘制实际适合该文本的部分。
请注意,尽管render_texture的构建成本相当高,所以您要重复使用它们而不是一直创建新的纹理。