libGDX祝酒词

libGDX Toast message

我试过使用这个教程:

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

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

之后 render_toast.toaster(); 进行渲染。

我想在节目中使用它,所以我把它放到了 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);

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

为游戏中所需的方法创建一个接口。使用 libgdx 处理程序在 AndroidLauncher class 中实施此方法。您可以在游戏中的任何地方调用这些方法以获得 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() {
    }
}

我已经为我的项目实现了 Android-like toast,并决定与您分享!享受:Toast LibGDX (GitHub)