SFML sf::Text::setFillColor 坏了,还是我做错了什么
SFML sf::Text::setFillColor is broken or am I doing something wrong?
我编写的代码仅显示状态堆栈顶部状态的sf::D rawable对象。渲染适用于所有内容,除了 sf::Text 类型,当调用 button.getText().setFillColor(sf::Color:Red) 时,它不会改变文本的颜色。但是,当我用红色文本构造一个按钮时,每当我尝试为该按钮设置另一种颜色时,无论我请求什么颜色,我都只会得到一个白色文本。
这是我更改按钮颜色的地方:
void GameState_MainMenu::handleRealTimeInput()
{
for each (TextButton button in mButtons)
{
if (button.isSpriteClicked())
{
button.getText().setFillColor(sf::Color::Red);
button.triggerAction();
sf::Clock wait;
sf::Time timer = sf::Time::Zero;
timer = sf::seconds(0.15f);
while (wait.getElapsedTime() < timer)
{
}
wait.restart();
}
}
}
这是我的游戏::render() 方法:
void Game::render()
{
GameState *currentState = getActiveState();
if (currentState != nullptr)
{
mWindow.clear();
currentState->draw();
}
mWindow.display();
}
最后,这是 MainMenu 状态的绘制方法:
void GameState_MainMenu::draw()
{
game->mWindow.draw(game->mBackground);
game->mWindow.draw(mSelector.mSprite);
for each (TextButton button in mButtons)
{
game->mWindow.draw(button.getText());
}
}
可能是因为你在 GameState_MainMenu:handleRealTimeInput 中有一个 while 循环,程序卡住了。
您可以尝试使用线程,尽管这种方式可能会变得非常混乱。我建议修改你的代码。
好的,所以我发现这与每条指令的 c++ 有关。一旦我切换到经典的类似数组的遍历,我的按钮就开始改变颜色。我并不是说这是解决方案,只是它对我有用。如果有人有同样的问题,您可能需要检查一下。
相关文章:
- #定义c-预处理器常量..我做错了什么
- 努力将整数转换为链表。不知道我在这里做错了什么
- .h 和.cpp文件分离时出错,但仅使用 .h 文件时没有错误.我做错了什么?
- 我的C++线程做错了什么?
- 谁能告诉我我用 getline 做错了什么 (cpp) 格式
- 没有输出的合并排序我做错了什么?
- 我正在尝试使用 while 循环从字符串中删除字母,直到没有字母。我在这里做错了什么?
- 在C++中使用 AKS 素数测试计算双胞胎素数 我做错了什么?
- 我一直试图弄清楚我在这个链表程序中做错了什么
- 我正在尝试学习如何在 c++ 中传递指针,但出现错误:没有用于调用"test"的匹配函数。我做错了什么?
- FFMPEG,C++,内存泄漏,我做错了什么?
- 我做错了什么?反向字符串 C++
- 我在这个课上做错了什么?
- 创建整数的 2D 数组,该数组将使用两个函数用随机数填充矩阵.我做错了什么?
- 在不使用内置库函数的情况下添加字符串,我做错了什么?
- 我做错了什么?GetDiskFreeSpaceExA的功能根本不起作用
- 我在查找和字符串上做错了什么?
- 我正在尝试用 c++ 制作一个日志记录框架,但信息没有传递给记录器的子组件,我做错了什么?
- 我在尝试将多个值push_back向量时出错。我做错了什么?
- 插入排序:我做错了什么?