c++ - 如何在 C++ (sfml) 中获取图像中像素的颜色

标签 c++ visual-c++ sfml

我正在开发一款简单的赛车游戏,你可以在赛道上驾驶汽车。 赛道是灰色的,背景是绿色的,任何时候我在给定点(汽车前部)得到的颜色不是灰色的,汽车应该停下来,因为它离开了赛道。

但是轨道不是用 sfml 绘制的,而是我制作的下载图像。 那么,有没有什么方法可以获取图像上像素的颜色,只要 rgb 值匹配?

这是执行此操作的伪代码:

游戏运行时
获取颜色(汽车x值,汽车y值)
如果颜色不是灰色
汽车站

谢谢!

最佳答案

您可以使用适当的方法获取sf::Image 中像素的sf::Color:sf::Image::getPixel .它需要 X 和 Y 坐标。

例子:

sf::Image track;

if (!track.loadFromFile("track.jpg"))
{
   // oops, loading failed, handle it
}

sf::Color color = track.getPixel(0, 0); // gets the color of the upper left corner pixel

关于c++ - 如何在 C++ (sfml) 中获取图像中像素的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51256740/

相关文章:

c++ - 如何创建两个具有重载构造函数的动态对象?

c++ - 如何使用 C++ 将 csv 文件转换为 json

c++ - 寻找相当于 unix 脚本命令的 Windows

c++ - 链接到 SFML dll 的程序无法启动,返回 0xC000007B 或缺少 __gxx_personality_v0

c++ - C++ SFML 中的抽象类错误

c++ - 为什么SFML位置是 float 的?

c++ - 如何在不为 std::map 指定值的情况下添加有效键?

c++ - 使用 C++ 中的属性管理大型空间数据集

C++ 'true' 和 'false' 关键字在 Visual C++ 6.0 中突然不正确或错误

visual-studio-2010 - 无法在 Visual Studio 2010(mfc 项目)中添加事件处理程序