我有一个演员,保持一个精灵渲染它的视图。我确定这个动作命中的方法是获取精灵边界框,并调用它的包含点方法来对抗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坐标中,所以应该可以工作,但测试总是失败。
有人能帮忙吗?先谢了。
1条答案
按热度按时间5vf7fwbs1#
根据scene2d hit detection wiki,
hit
方法在舞台确定演员的边界框“hit”时被调用。如果你想进一步细化hit,你只需要覆盖hit
(例如,你的精灵是圆形的,如果它在半径之外,你想确保你避免在边界框中“hit”,等等)。如果你想在你的Actor被触摸后做一些事情,你需要覆盖相应的
InputListener
方法。更多细节请参见同一wiki的InputListener部分。