0

我只想在我的舞台上的演员被触摸时才执行一个功能。但问题是无论它在舞台上的哪个位置被触摸,该功能都会被执行。即使它在舞台上的某个随机位置被触摸,该功能也会被执行。 .我希望该功能仅在演员被触摸时执行..我有设置边界...仍然无法正常工作..

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;
    }
4

1 回答 1

1

hit方法没有按照您的想法进行。该hit方法用于测试当前参与者是否与给定的 x,y 相交,因此它总是被调用。(如果你想扔掉“命中”,这很有用,因为你的演员不是矩形的。)

用于addListener添加事件侦听器以接收触摸事件并对其做出反应。

于 2013-03-25T04:58:33.143 回答