当我执行这段代码时:
dragging
它从不打印碰撞。这是为什么?
两个对象都是
org.newdawn.slick.geom
实现,而不是标准的Java实现
答案 0 :(得分:2)
这是一个很好的问题。找出我做研究的原因
Point p = new Point(0,0);
System.out.println(p.closed()); // TRUE
System.out.println(p.getPointCount()); // 1, logically
然后我在Shape class中搜索Slick2d仓库。我认为这些线条是它不起作用的原因:
boolean result = false;
float points[] = getPoints(); // Get all points of our shape
int length = points.length; // count them. here length==1
if (!closed()) {
length -= 2; // as we see the point is a closed shape, here length=-1
}
for(int i=0;i<length;i+=2) { // Does not even enter the complicated work because length == -1
// Complicated thing to test if intersect with a lot off points
}
return result; // here return false
以下是您的问题的理由。我不知道它是否是一个错误,或者它是否是开发人员的意愿。您仍然可以设置问题。
作为解决方案,我建议构建一个Rectangle(x,y,1,1)并与之相交。这可以根据需要进行,因为它是一个4点形状