为什么Slick2d Point不与Rectangle相交?

时间:2015-09-08 16:29:52

标签: java slick2d

当我执行这段代码时:

dragging

它从不打印碰撞。这是为什么?

两个对象都是

  

org.newdawn.slick.geom

实现,而不是标准的Java实现

1 个答案:

答案 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点形状