android 在libgdx中如何确定某个参与者是否被命中?

b91juud3  于 2023-02-17  发布在  Android
关注(0)|答案(1)|浏览(146)

我有一个演员,保持一个精灵渲染它的视图。我确定这个动作命中的方法是获取精灵边界框,并调用它的包含点方法来对抗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矩形似乎都在actor坐标中,所以应该可以工作,但测试总是失败。
有人能帮忙吗?先谢了。

5vf7fwbs

5vf7fwbs1#

根据scene2d hit detection wiki,hit方法在舞台确定演员的边界框“hit”时被调用。如果你想进一步细化hit,你只需要覆盖hit(例如,你的精灵是圆形的,如果它在半径之外,你想确保你避免在边界框中“hit”,等等)。
如果你想在你的Actor被触摸后做一些事情,你需要覆盖相应的InputListener方法。更多细节请参见同一wiki的InputListener部分。

相关问题