Tilemap - 碰撞层是否必要?

Sko*_*der 1 c# xna tiles collision

我正在创建一个2D侧滚动游戏并且有关于碰撞的问题.我一直在阅读各种文章,其中一些人说你应该有一个碰撞图层,这与图块层完全相同,但只是存储比特.我理解这个逻辑,但是如果我的tile实际上是包含一个名为的属性的结构IsSolid.我不能简单地检查当前的瓷砖isSolid而不是另一层吗?或者碰撞层是否提供了我错过的其他好处?

谢谢你的帮助

And*_*ell 5

如果你的游戏支持多层,那真的只是一个大问题.

如果您有多个可视图层(例如:background,playfield,foreground),那么能够以相同的方式处理所有这些图层会很有帮助.分离出碰撞数据可以在结构上"很好".

你如何做到这一点取决于你.您可以实现单独的碰撞图层,您可以单独编辑它.但是我建议不要这样做,因为那时你必须让你的碰撞层与你的视觉"playfield"层保持同步.

更好的解决方案是,当你加载一个关卡时,通过从你的游戏区域层提取数据来动态生成一个碰撞"层"(如果这对你的游戏有意义的话,可能还有其他层).您可能会以完全不同的格式存储此"图层",并将其放置到关卡的可视数据中.