0

初めてのゲームをコーディングしていますが、メニュー画面が機能しません。以下は私のメニューのコードです。終了ボタンをテストしようとしていますが、どこをクリックしてもプログラムが終了しません。System.out.println(e.getX()+", "+e.getY());また、自分のmousePressed()メソッドに追加しようとしましたが、うまくいきませんでした。何も出力されません。私は完全に道に迷っており、助けが必要です。これが愚かな質問である場合は申し訳ありませんが、私はこれに完全に慣れていません! ありがとう!

public class MenuScreen implements Screen {
    MyGame game;
    OrthographicCamera camera;
    SpriteBatch batch;

    public MenuScreen(MyGame game) {
        this.game = game;

        camera = new OrthographicCamera();
        camera.setToOrtho(false, 1080, 1920);

        batch = new SpriteBatch();
    }

    public class MouseInput implements MouseListener {

        @Override
        public void mouseClicked(MouseEvent arg0) {}

        @Override
        public void mouseEntered(MouseEvent arg0) {}

        @Override
        public void mouseExited(MouseEvent arg0) {}

        @Override
        public void mousePressed(MouseEvent e) {

            int mx = e.getX();
            int my = e.getY();

            /**
                batch.draw(Assets.sprite_startbutton, 165, 955);
                batch.draw(Assets.sprite_tutorialbutton, 325, 790);
                batch.draw(Assets.sprite_exitbutton, 365, 700);
                batch.end();
             */
            //exit button
            if (mx >= 365 && mx <= 600) {
                if (my >= 700 && my <= 775) {
                    //Pressed exit button
                    System.exit(1);
                }
            }
        }

        @Override
        public void mouseReleased(MouseEvent arg0) {}
    }

    public void render(float delta) {
        Gdx.gl.glClearColor(1F, 1F, 1F, 1F);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

        camera.update();

        batch.setProjectionMatrix(camera.combined);

        batch.begin();
            batch.draw(Assets.texture_background, 0, 0);
            batch.draw(Assets.sprite_cat, 500, 1350, 750, 263); 
            //(500, 1350, 750, 263)[Cat on shelf]
            //(95, 1600, 900, 316)[Cat starting position]
            batch.draw(Assets.sprite_title, 50, 1600);
            batch.draw(Assets.sprite_startbutton, 165, 955);
            batch.draw(Assets.sprite_tutorialbutton, 325, 790);
            batch.draw(Assets.sprite_exitbutton, 365, 700);
        batch.end();
    }
4

1 に答える 1

2

AWT用のMouseListenerをlibgdxアプリケーションで使用しているようですが、これはあなたのセットアップでは機能しません。Gdx.input を使用して、入力 (または InputListener) をポーリングします。

このチュートリアルもご覧ください: http://www.gamefromscratch.com/post/2013/10/15/LibGDX-Tutorial-4-Handling-the-mouse-and-keyboard.aspx

于 2014-07-26T03:25:07.647 に答える