我想只在触摸舞台上的演员时执行一个功能。 但问题是函数被执行而不管它在舞台上的位置如何...... 即使它在舞台上触及某个随机位置,也会执行该功能。 我希望这个函数只在玩家被触摸时执行..我有setbounds ......它还没有工作..
public Restart()
{
atlas = new TextureAtlas(Gdx.files.internal("pages-info.atlas"));
sprite = atlas.createSprite("restart");
this.touchable = true;
sprite.setBounds(x, y, sprite.getWidth(), sprite.getHeight());
}
public void draw(SpriteBatch batch,float parentAlpha)
{
batch.draw(sprite, x, y , width, height );
}
@Override
public Actor hit(float x, float y)
{
// TODO Auto-generated method stub
Gdx.app.log( FirstGame.LOG, " restart working " );
return null;
}
答案 0 :(得分:1)
hit
方法没有按照您的想法执行。如果当前actor与给定的x,y相交,则hit
方法用于测试,因此它总是被调用。 (如果你想抛弃“命中”,那么它很有用,因为你的演员不是长方形。)
使用addListener
添加事件监听器以接收触摸事件并对其作出反应。