我目前正在从事游戏设计。我是Unity的新手,不知道如何为我的项目实现以下功能。
我的方形游戏板上有几个球,并且玩家能够在游戏板上画线。这些线条必须附加到游戏板的边界或其他线条上,这些边界可以将游戏板分成几小块(类似于游戏Jezzball)。我的问题是如何检测每个小区域内的球数。
答案 0 :(得分:0)
您应该问“对于每个球,该球位于哪个区域。”而不是询问“如何检测每个小区域内的球数”。
我认为这对您来说不是一个很好的问题,因为它是一个相对简单的编程问题(我希望如此),但是它是一个非常棘手的几何问题。最难的部分将是定义区域。
话虽这么说,这是我如何解决数学问题:
将每条线建模为线性方程式:y = mx + c。将定义一个受方程影响的区域,以及y是>还是<线的y值。这基本上意味着将每个区域定义为一系列数学约束。
要测试某个点是否在一个区域内,对于该区域的每个约束,请将该点的x值输入到方程式中,然后将该点的y值与该x值处的线的y值进行比较。如果该点满足每个约束,则认为该点在该区域内。
要查找点位于哪个区域,只需对每个区域应用此过程,直到返回true。然后将该点添加到该点列表中。然后,您只需计算每个区域的点数即可。
如果这看起来很困难,那是因为。我建议暂时搁置。