libGDX Toast消息

libGDX Toast消息,libgdx,toast,Libgdx,Toast,我尝试使用本教程: 首先,已宣布私有Toast render_Toast=新Toast 7、6 在那之后,推上烤面包机;渲染 我想在show中使用它,所以我将此用于演示: 渲染toast.maketext游戏开始,字体,toast.COLOR\u PREF.BLUE,toast.STYLE.ROUND,toast.TEXT\u POS.middle\u right,toast.TEXT\u POS.middle\u down,toast.MED 它不工作,没有错误信息,只停止我的应用程序。为游戏

我尝试使用本教程:

首先,已宣布私有Toast render_Toast=新Toast 7、6

在那之后,推上烤面包机;渲染

我想在show中使用它,所以我将此用于演示:

渲染toast.maketext游戏开始,字体,toast.COLOR\u PREF.BLUE,toast.STYLE.ROUND,toast.TEXT\u POS.middle\u right,toast.TEXT\u POS.middle\u down,toast.MED


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

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

您可以关注此视频了解详细信息

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

 //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() {
    }
}

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

您可以关注此视频了解详细信息

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

 //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的toast,并决定与您分享!享受:

我已经为我的项目实现了类似Android的toast,并决定与您分享!享受:

一些英语教程会更精彩。视频链接已经失效。我发现这一点很有帮助:一些英语教程会更好。视频链接已经失效。我觉得这个很有用: