我正在做一个带有一些移动点的简单游戏。玩家围绕一些移动的点绘制一个封闭的形状,如果所有的点都是相同的类型,那么玩家就有一个分数。路径以点为单位存储在arraylist中。我的问题是,如何检查路径中是否有对象?
编辑:可以使用Region类和内部方法(int x,int y)??
来完成答案 0 :(得分:0)
封闭的形状可以是任何多边形还是仅限于矩形?如果它可以是任何多边形,那么这听起来像Convex Hull问题(但是我必须把我的算法书清理干净,以确保告诉你)。如果它是一个凸壳问题,那么你应该能够用Jarvis march算法解决这个问题。
维基百科也显示另一个选项是Ray Casting。可以找到此算法的Java实现here
答案 1 :(得分:0)
你将不得不画一个矩形..使用矩形类,然后使用点类来制作你的点。
我认为这个导入可以帮助你导入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)