libGDX Toast消息

时间:2015-03-19 10:40:00

标签: libgdx toast

我试过使用这个教程:

http://www.badlogicgames.com/forum/viewtopic.php?f=11&t=484#p2959

首先声明private Toast render_toast = new Toast(7, 6);

之后推出render_toast.toaster();来渲染。

我想在show中使用它,所以我把它放到show()

render_toast.makeText("Game start", "font", Toast.COLOR_PREF.BLUE, Toast.STYLE.ROUND, Toast.TEXT_POS.middle_right, Toast.TEXT_POS.middle_down, Toast.MED);

它不起作用,没有给出错误消息,只停止我的应用程序。

2 个答案:

答案 0 :(得分:3)

为游戏中的所需方法创建一个界面。使用libgdx处理程序在AndroidLauncher类中实现此方法。您可以在游戏中的任何位置为Android相关UI调用这些方法。

您可以按照此视频了解详情

https://www.youtube.com/watch?v=XxiT3pkIiDQ

这就是我在游戏中使用它的方式。

 //Defining interface for customized methods
public interface AndroidInterfaces {

    public void toast(final String t);

}

//implementing the interface in android launcer
public class AndroidLauncher extends AndroidApplication implements AndroidInterfaces{

    final AndroidLauncher context=this;
    @Override
    protected void onCreate (Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();    
        //if (Gdx.input.isPeripheralAvailable(Peripheral.Compass))
          cfg.useCompass = true;
          //cfg.useAccelerometer=true;
        initialize(new MyGame(this), cfg);
    }

    @Override
    public void toast(final String t) {
        handler.post(new Runnable()
        {

            @Override
            public void run() {
                //System.out.println("toatsing in launcher run");
                Toast.makeText(context, t, Toast.LENGTH_SHORT).show();

            }

        });

    }
}


public class MyGame extends Game{
    //16012016
    //16012016 for toast
        AndroidInterfaces aoi;

        public MyGame(AndroidInterfaces maoi)
        {
            aoi=maoi;
        }
        public MyGame()
        {

        }
      public boolean backpressed=false; //Universal flag to check back button press status , across screens.
       .....
      .....
}



public class MainMenuScreen implements Screen{

    MyGame game;
    float x,y,w,h,pw,gap;
    float x1,y1;   //coordinates for animation
    //16012016
    boolean toast=false;
    float toasttimer=0;

    public MainMenuScreen(MyGame gg) {
        game = gg;
    }

    @Override
    public void render(float delta) {           
        //16012016
                if(toast)
                {
                    toasttimer=toasttimer+delta;
                }
                .....
                ...//omitted
            //16012016:Toast
            if(toast)
            {
                if(toasttimer> 2.5)
                    Gdx.app.exit();
                else if (Gdx.input.isKeyJustPressed(Keys.BACK))  //For double back press exit effect.
                    Gdx.app.exit();
            }
            else if (Gdx.input.justTouched()) {
            game.setScreen(game.STS);  //Setting another screen
        }       
        //16012016
            else if (Gdx.input.isKeyJustPressed(Keys.BACK))
             if(!game.backpressed)
                {
                 if(!toast)
                 {
                     toast=true;  //if bsck button is just pressed in current screen then toasting..
                  game.aoi.toast("EXITING.THANKS FOR PLAYING!");  //Not relevant to desktop project, calling implemented method in androind launcher
                 }       
                }
                                                    }
         else if(game.backpressed)
         {
             game.backpressed=false;
         }
    }

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

    @Override
    public void show() {
        //16012016
                toasttimer=0;
                toast=false;
                Gdx.graphics.setContinuousRendering(true);  
    }

    @Override
    public void hide() {
        Gdx.input.setInputProcessor(null);
    }

    @Override
    public void pause() {
    }

    @Override
    public void resume() {
    }

    @Override
    public void dispose() {
    }
}

答案 1 :(得分:3)

我为我的项目实施了类似Android的吐司,并决定与你分享!享受:Toast LibGDX (GitHub)

相关问题