我正在做一个带有一些移动点的简单游戏。玩家在一些移动的点周围画出一个封闭的形状,如果所有的点都属于同一类型,那么玩家就会得到一个分数。路径以点为单位并存储到数组列表中。我的问题是,如何检查路径中是否有对象?
编辑:可以用 Region 类和里面的方法(int x,int y)来完成吗?
封闭的形状可以是任何多边形还是仅限于矩形?如果它可以是任何多边形,那么这听起来像是一个凸壳问题(但我必须把我的算法书掸掉才能确定地告诉你)。如果它是一个凸包问题,那么您应该能够使用 Jarvis March 算法解决这个问题。
维基百科还显示另一种选择是Ray Casting。可以在此处找到此算法的 Java 实现
你将不得不画一个矩形..使用矩形类,然后使用点类来表达你的观点。
我认为这个导入可以帮助你导入 android.graphics.Rect;
代码如下:
Rect myrectangleContainer=new Rect(100, 100, 200, 200);
Point dot= new Point(x,y);
然后收集布尔值
boolean isDotWithRect=myrectangleContainer.contains(dot.x,dot.y)