Answers:
如果主要使用来自用户的线段(或带有控制点的贝塞尔曲线)绘制形状,则可以实现一种使用广泛的算法,称为Separating-Axis-Theorem。简而言之:如果存在一个轴(形状的单位矢量)不重叠(形状的投影值不会导致正差),则对象不重叠。我过去曾经使用过它,并且像魅力一样工作。
如果形状像Crayon Physics中一样是手绘的,则可以保持直线阵列并检查每条直线的碰撞。尽管有直线,但是您可以使用贝塞尔曲线或类似的东西。
方法取决于您选择的数据结构是位图还是向量。
第一种方法可以处理任意复杂的形状,易于实现,但使用更多的内存。实际上,您可以通过使用压缩来减少内存开销,并通过使用分层数据结构(八叉树)来加快内存开销。
第二种方法,不是那么容易实现,而是使用更多的处理能力。
在每种情况下都应衡量是否重要。我会尝试做第一个,因为它更容易实现。祝好运。:)