gpt4 book ai didi

java - Slick2d 形状包含另一个形状

转载 作者:行者123 更新时间:2023-12-01 15:25:52 26 4
gpt4 key购买 nike

我正在玩Slick 2d Java 游戏引擎。我正在尝试编写一些渲染逻辑,其中如果圆圈位于正方形内,则其颜色为绿色。否则它的颜色是红色的。您可以在这张图片中看到我想要实现的目标:

我的问题是,当我使用 Slick2d 的 Shape.contains(Shape) 时方法中,无论圆是否在正方形中,它总是返回 false。每当我使用 Java AWT Rectangle.contains(Rectangle)方法它将正确返回true。

这是我正在使用的一些(垃圾)代码。如果这有影响的话,我将坐标存储为 float (因此,对于 Java AWT 的矩形,将其强制转换为 int)。

public boolean contains(final Entity entity) {
Rectangle me = new Rectangle(x, y, width, height);
Rectangle them = new Rectangle(entity.getX(), entity.getY(), entity.getWidth(), entity.getHeight());
java.awt.Rectangle awtMe = new java.awt.Rectangle((int) x, (int) y, (int) width, (int) height);
java.awt.Rectangle awtThem = new java.awt.Rectangle((int) entity.getX(), (int) entity.getY(), (int) entity.getWidth(), (int) entity.getHeight());
return awtMe.contains(awtThem); // returns true correctly
//return me.contains(them); // never returns true
}

我正在使用 Slick 版本 274。我对游戏开发非常绝望,所以这让我很困惑。我尝试查看 Slick source for Shape.contains但现阶段它有点高于我。任何关于为什么会发生这种情况的建议将不胜感激。

编辑

好吧,看来当我使用 Slick2d 方法时如下......

return me.intersects(them) || me.contains(them);

...它按预期工作。我仍然不确定为什么 contains 不能单独工作。

最佳答案

有同样的问题,有点。我发现这里有一个问题:https://bitbucket.org/kevglass/slick/issue/15/circle1intersects-circle2-returns-true

关于java - Slick2d 形状包含另一个形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10149842/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com