0

我想知道是否可以使用 SFML 库在 C 中使用颜色设置冲突?因为我正在使用带有瓷砖的地图,我不知道它是否可以一起使用。

谢谢!

4

3 回答 3

0

据我所知,您使用具有两种颜色的图像来定义碰撞(例如白色是可以通过的,黑色是被阻挡的)。并且您希望 SFML 能够识别它。正确的?sf::Image(如果您使用sfImage_createFromFilesfImage_getPixelsPtr是 CSFML)可以读取图像文件并为您提供像素(颜色)数组。但 SFML 不处理碰撞,它是一个渲染库。碰撞必须是程序逻辑的一部分。

于 2013-03-15T14:20:13.500 回答
0

最简单的方法就是像这样使用 sprite.setColor 函数

//Sets the sprite to purple
sprite.setColor(sf::Color(255,0,255));

这是文档 http://www.sfml-dev.org/documentation/2.0/classsf_1_1Sprite.php#a14def44da6437bfea20c4df5e71aba4c这是 sf::Color 文档http://www.sfml-dev.org/documentation/2.0/类f_1_1Color.php

于 2015-07-07T15:37:59.057 回答
0

处理冲突必须是您在代码中定义的内容。如果您正在使用瓦片地图,它应该保留每个瓦片的值,定义它是哪种类型的单元格。

使用这些值,您可以在程序中工作并分别进行绘图和逻辑,但都基于瓦片地图信息。

一方面,您必须使用与图块值对应的颜色绘制图块。这个过程是为了绘制每一帧,所以你不应该用复杂的逻辑来充电(因为碰撞)

另一方面,您必须检查其他实体(玩家、射弹等)是否与瓦片发生碰撞,最好仅在需要时(例如,由事件调用,作为用户输入)

于 2017-09-25T09:01:05.803 回答