0

我有一个演员保持一个精灵来渲染它的视图。我确定此操作命中的方式是获取精灵边界框并针对 x,y 命中函数参数调用其包含点方法。这似乎不起作用。一直在寻找基于示例等的方法来做到这一点......但一直找不到任何东西。有人可以建议一种方法吗?

我现在使用的代码是:

@Override
public Actor hit(float x, float y)
{
   Rectangle re= _sprite.getBoundingRectangle();

   if(re.contains(x, y))
       return this;
   else
       return null;

}

文档中的 x 和 y 和 re 矩形似乎都在演员坐标中,所以它应该可以工作,但测试总是失败。

有人可以帮忙吗?提前致谢。

4

1 回答 1

0

根据scene2d 命中检测 wikihit ,当舞台确定 Actor 的边界框是“命中”时调用该方法。如果你想进一步细化命中,你只需要覆盖hit(例如,你的精灵是圆形的,如果边界框在半径之外,你想确保避免在边界框中出现“命中”等)。

如果您想在您的 Actor 被触摸后做某事,您需要重写相应的InputListener方法。有关更多详细信息,请参阅同一 wiki 的InputListener 部分

于 2013-01-24T05:33:12.967 回答