LibGDX - 如何让菜单切换屏幕进入游戏

时间:2014-08-27 21:41:36

标签: java android libgdx

我现在遇到的问题是当我运行应用程序时,主菜单显示就好了,但是当我点击按钮去玩游戏时主菜单仍然是他们但游戏正在运行。我知道这是因为我在游戏中有音乐。基本上,当我运行游戏时,主菜单不会消失。以下是我的代码。

package com.dakotapederson.slingshotsteve;

import com.badlogic.gdx.Game;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.screens.Menu;

public class SlingshotSteve extends Game {

public SpriteBatch batch;
public BitmapFont font;

public void create() {
    batch = new SpriteBatch();
    //Use LibGDX's default Arial font.
    font = new BitmapFont();
    this.setScreen(new Menu(this));
}

public void render() {
    super.render(); //important!
}

public void dispose() {
    batch.dispose();
    font.dispose();
}

}

这是主菜单屏幕。

public class Menu implements Screen {

final SlingshotSteve game;

OrthographicCamera camera;

public Menu(final SlingshotSteve gam) {
    game = gam;

    camera = new OrthographicCamera();
    camera.setToOrtho(false, 800, 480);
}

@Override
public void render(float delta) {

    Gdx.gl.glClearColor(0, 0, 0.2f, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    camera.update();
    game.batch.setProjectionMatrix(camera.combined);

    game.batch.begin();
    game.font.draw(game.batch, "Welcome to Slingshot Steve!!! ", 100, 150);
    game.font.draw(game.batch, "Tap anywhere to begin!", 100, 100);
    game.batch.end();

    if (Gdx.input.isTouched()) {
        game.setScreen((Screen) new GameScreen(game));
        dispose();
    }
}

这是游戏画面。

public class GameScreen implements Screen {
   final SlingshotSteve game;   

   OrthographicCamera camera;
   // Creates our 2D images
   SpriteBatch batch;
   TextureRegion backgroundTexture;
   Texture texture;

   GameScreen(final SlingshotSteve gam) {
        this.game = gam; 

    camera = new OrthographicCamera(1280, 720);

    batch = new SpriteBatch();

    Texture texture = new Texture(Gdx.files.internal("background.jpg"));
    backgroundTexture = new TextureRegion(texture, 0, 0, 500, 500);

    Music mp3Sound = Gdx.audio.newMusic(Gdx.files.internal("rain.mp3"));
    mp3Sound.setLooping(true);
    mp3Sound.play();



}


public void render() {  

      Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

      camera.update();
      batch.setProjectionMatrix(camera.combined);

      batch.begin();
      batch.draw(backgroundTexture, 0, 0); 
      batch.end();

}

@Override
public void resize(int width, int height) {

}

@Override
public void pause() {

}

@Override
public void resume() {

}

@Override
public void dispose() {
       batch.dispose();
       texture.dispose();

}

0 个答案:

没有答案