绘制sf ::文本的麻烦.C
Trouble with drawing sf::Text. C++
我在sf::Text
和sf::Font
方面遇到了麻烦。文本不想绘制。std::wstring
具有正确的文本值。sf::Font
负载完美。这是我的代码:
sf::Font mainGameFont;
void drawText( const std::wstring& str, const int size, const float xposition, const float yposition, sf::RenderWindow& window, const sf::Font& mainGameFont )
{
std::wcout << str << std::endl;
source.setFont( mainGameFont );
source.setColor( color );
source.setCharacterSize( size );
source.setString( str );
source.setPosition( xposition, yposition );
window.draw(source);
}
int main()
{
sf::RenderWindow window(sf::VideoMode(1024, 768), "test");
mainGameFont.loadFromFile("futura.ttf");
...
//Other code, calling drawText(...), etc
...
}
有人可以帮我吗?对不起,我的英语不好。
更新:此代码不起作用!
#include <string>
#include <iostream>
#include "SFML/Graphics.hpp"
sf::Font mainGameFont;
sf::Text source;
void drawText( const std::wstring& str, const int size, const float xposition, const float yposition, sf::RenderWindow& window, sf::Font& mainGameFont )
{
mainGameFont.loadFromFile("futura.ttf");
std::wcout << str << std::endl;
source.setFont( mainGameFont );
source.setColor( sf::Color::White );
source.setCharacterSize( size );
std::cout << "stat1" << std::endl;
source.setString( str );
source.setPosition( xposition, yposition );
window.draw(source);
std::cout << "ok" << std::endl;
}
int main()
{
sf::RenderWindow window(sf::VideoMode(600, 400), "Test");
while (window.isOpen())
{
window.clear(sf::Color::Black);
drawText(L"Ok", 20, 90, 90, window, mainGameFont);
window.display();
}
return 0;
}
好吧,首先,您对不良编程惯例的整个代码:
您声明:
sf::Font mainGameFont;
sf::Text source;
作为全球群体,但随后使用函数中的变量完全相同的名称违反了阴影规则:
void drawText( const std::wstring& str, const int size, const float xposition, const float yposition, sf::RenderWindow& window, sf::Font& mainGameFont )
主要通过重新支撑:
sf::Font& mainGameFont
然后,您会通过函数已经看到的全局变量来传递……作为对函数的引用:
drawText(L"Ok", 20, 90, 90, window, mainGameFont);
您还错误地使用了保留的关键字'size':
source.setCharacterSize( size );
您无法使用。
的名称#include <string>
#include <iostream>
#include <SFML/Graphics.hpp>
sf::Text source;
sf::Font mainGameFont;
void drawText( const sf::String &str, const int Size, const float xposition, const float yposition, sf::RenderWindow& window)
{
source.setString(str);
source.setCharacterSize(Size); //only the lower cased word size is reserved. A capital S fixes that.
source.setPosition(xposition,yposition);
window.draw(source);
}
int main()
{
sf::RenderWindow window(sf::VideoMode(600, 400), "Test");
//This should only be called ONCE, not at every pass.
mainGameFont.loadFromFile("futura.ttf");
source.setFont(mainGameFont);
while (window.isOpen())
{
window.clear(sf::Color::Black);
drawText("Ok", 20, 90, 90, window);
window.display();
}
return 0;
}
重写工作。
相关文章:
- 文本文件中的单词链表
- 从命令行c++发送文本文件名
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 2D数组来自文本输入,中间有空格
- 如何将内容数组写入文本文件?
- 无法通过空白将文本文件行分隔为矢量
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- C++将文本文件中的数据读取到结构数组中
- 在指针的帮助下,文本文件中单词的频率
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 将值从二维数组输出到文本文件
- 如何在c++中从文本文件中逐行读取整数
- 如何创建一个QTableWidgetItem,用长文本右对齐,左边有省略号
- 从文本文件中读取时钟时间和事件时间并进行处理
- 如何从文本文件中读取值和数组
- 在此任务上遇到麻烦,我们需要使用指针和数组来找到文本文件中某些数字的平均值,中值和模式
- 绘制sf ::文本的麻烦.C
- C :将文本文件的内容存储在2D数组中,作为字符串(用于NULL终结器的麻烦?)
- C 麻烦阅读文本文件
- 从文本文件加载时遇到麻烦