对于我正在处理的游戏,我想比较SFML2中的两个精灵,例如if()语句。例如,我可以在所有黑色像素中有一个1280x1024的大图像和一个灰色像素。然后我会有2个独立的精灵,一个是灰色像素,另一个是地图。我只会裁剪地图上的灰色像素,并比较两者,如果属实,则执行其他操作。比较精灵?
你看到我在这里得到什么吗?这可能吗?如果是这样,怎么样?
对于我正在处理的游戏,我想比较SFML2中的两个精灵,例如if()语句。例如,我可以在所有黑色像素中有一个1280x1024的大图像和一个灰色像素。然后我会有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所以希望代码片段至少会给你指示
不知道你在做什么和为什么,但你不想比较像素到像素的大型精灵。为了进行碰撞检测,您应该使用更智能,计算量更小的方法,例如比较对象坐标。 – 2012-01-05 03:07:22