彩色碰撞C SFML

时间:2013-03-12 14:54:06

标签: c sfml

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

谢谢!

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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/classsf_1_1Color.php

答案 2 :(得分:0)

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

使用这些值,您可以在程序中工作并单独执行绘图和逻辑,但两者都基于图块地图信息。

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

另一方面,您必须检查其他实体(玩家,射弹等)是否与瓷砖逐个碰撞,最好仅在需要时(例如,通过事件调用,作为用户输入)