使用精灵创建菜单按钮

时间:2016-09-09 22:48:40

标签: java android libgdx orthographic

我目前正在为我的游戏编辑菜单屏幕。我试图创建一个矩形,检查是否触摸了Sprite按钮。我正在使用Abitrary World Coordinates public static int WIDTH = 1080 , HEIGHT = 720;

    public void create() {

    cam = new OrthoCamera();
    cam.resize();

    texture = new Texture("Button.png");

    texture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
    TextureRegion region = new TextureRegion(texture, 59, 52, 300,250);

    sprite = new Sprite(region);
    sprite.setSize(sprite.getWidth()  , sprite.getHeight()  )
    sprite.setPosition(MyGdxGame.WIDTH / 2, MyGdxGame.HEIGHT / 2);

}

我正在使用一种特殊的正交相机,如果你想看到两个相关的类klick here。 (不是我的项目)

    public void update(OrthoCamera cam) {

    if(Gdx.input.isTouched())
     {

       Vector3 tmp = new Vector3( Gdx.input.getX(), Gdx.input.getY(), 0);
       cam.unproject(tmp);

       Rectangle textureBounds = new Rectangle(0,0, 300, 250); //origin at center ?!



      if(textureBounds.contains(tmp.x,tmp.y))
          {

          //ScreenManager.setScreen(new GameScreen());
            System.out.println("Rectangle")          
          } 
     }

     }   

槽测试我认识到,矩形坐标系的原点位于中心,宽度和高度设置得很高。在这里你可以看到一个区域的图片,通过点击我打印出“矩形”。 Normaly矩形的起源应该在左下角,对吗?

enter image description here

2 个答案:

答案 0 :(得分:0)

我强烈建议您使用例如Scene2d。它可以轻松为您的应用程序创建用户界面。

有了这个,您可以使用ImageButton并附加ClickListener,以便在点击按钮时获得回调。

答案 1 :(得分:0)

要解决非居中坐标系的问题,您必须将摄像机设置到正确的位置。

您可以使用以下代码执行此操作:

camera.setOrtho(false);
camera.position.set(Gdx.graphics.getWidth()/2, Gdx.graphics.getHeight()/2);
camera.update();