对于我正在研究的游戏,我想比较SFML2中的两个精灵,比如if()语句。例如,我可能有一个大的1280x1024图像,所有黑色像素中都有一个灰色像素。然后我将有2个单独的精灵,一个是单独的灰色像素,另一个是地图。我只会从地图中裁剪出灰色像素并比较两者,如果是,则执行其他操作。
你看到我在这里得到了什么吗?这可能吗?如果是这样,怎么样?
答案 0 :(得分:2)
我和亚历克斯说,有更聪明的方法来检查精灵。
第2号比其他所有人更可取,但还有很多其他方法
编辑:根据评论,您不会“裁剪”像素,您只需将图像加载到内存中并使用Image类获取某个位置的像素颜色。以下是一个例子
sf::Image* map = MapSprite->GetTexture()->CopyToImage()
if (map->GetPixel(666,666) == sf::Color::Black)
{
//Funky stuff here
}
注意:您提到SFML2所以这是来自那组文档,对于1.6
可能有所不同Edit2:自从我使用了SMFL以来已经有一段时间了,所以希望代码片段至少会给你指路