2013-03-12 67 views
0

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

谢谢!

+0

SFML和C!?使用SFML/C++或SDL/C – deepmax 2013-03-12 14:58:00

+1

是的,有一个C版本的SFML。你可以使用sfml比SDL更容易做到:) – Alkatell 2013-03-12 15:00:48

+0

@MM。只是为了完整起见,通常只需用'_'来替换'::'来将C++ SFML代码转换为C代码。 – Morwenn 2013-03-12 16:13:36

回答

0

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

0

处理冲突必须是你在代码中定义的东西。 如果您正在使用瓷砖贴图,它应该为每个瓷砖保留值,定义它是哪种类型的单元。

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

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

另一方面,你必须检查其他实体(玩家,射弹等)是否与瓦片发生碰撞一个接一个,最好只在需要的时候(例如通过事件来调用,例如用户输入)