【问题标题】:collision detection on non-full tiles in a Tilemap对 Tilemap 中的非完整切片进行碰撞检测
【发布时间】:2011-01-31 21:45:31
【问题描述】:

如果从瓦片集创建瓦片地图并且有瓦片/正方形未完全填充,如何使这些半填充的瓦片能够检测到碰撞?

很容易选择一个正方形的区域并将其设置为例如碰撞是的

但是如何处理填充半个瓷砖的圆边或刚刚进入瓷砖的三角形?

或者是否创建了一个完整的图层并将其设置为碰撞,是的,瓷砖不需要检查碰撞?

不过,如何检测层的碰撞?

谢谢

【问题讨论】:

    标签: cocos2d-iphone collision-detection


    【解决方案1】:

    基于 tile 的系统的整个想法是填充整个 tile。当然,您可以将正常的碰撞检测方法应用于图块,或者在每个图块的基础上应用它们。

    有些游戏允许建筑物填满整个图块,但仍有单位穿过图块。这通常是通过获取 4 个角点(以及两侧中心的 4 个点)并检查其中一些点之间的线是否与任何东西碰撞来完成的,如果是这样,那么单元可以通过这些线。

    这通常是为每座可以占用一块瓷砖的建筑物预先计算的。

    【讨论】:

    • 谢谢。如果瓷砖做得非常小,圆形边缘将覆盖大部分瓷砖,检测会更精确怎么办?
    • 您可以使用小图块,但图块越小,寻路的成本就越高,因此您必须在准确性和速度之间取得平衡。 '4-corner' 解决方案比拥有 4 倍数量的瓷砖便宜,因为这只会改变每个瓷砖的公式是否可以到达,但它有点难以正确。我建议你尝试一下这两种方法,看看哪一种最适合你的游戏:)。
    猜你喜欢
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-28
    • 2020-05-28
    • 2018-09-18
    • 1970-01-01
    相关资源
    最近更新 更多