如何检查是否首次启动启动并包含教程-LibGDX

时间:2017-06-08 13:10:27

标签: java libgdx

我想为第一次发布游戏创建我的游戏教程。下次教程不应该发生。 为此,我创建了一个优先存储的布尔值,以指示启动是否为第一个。

我的单身偏好类包括在这里:

public class FirstLaunchNotifier {

    public static final FirstLaunchNotifier INSTANCE = new FirstLaunchNotifier();

    private final Preferences prefs;

    private static final String LAUNCH_KEY = "launch";
    private static final String PREF_NAME = "TMS";

    /* if false->first launch with tutorial.else if true->no tutorial */
    private boolean launchBoolean;

    public FirstLaunchNotifier() {
        prefs = Gdx.app.getPreferences(PREF_NAME);
        launchBoolean = prefs.getBoolean(LAUNCH_KEY, false);
    }

    public void saveLaunchState() {
        launchBoolean = true;
        prefs.putBoolean(LAUNCH_KEY, launchBoolean);
        prefs.flush();
    }

    public boolean getLaunchBoolean() {
    //  System.out.println("launch::: "+launchBoolean);
        return launchBoolean;

    }

在我的gamecreen课程中,目前我在update()内调用了render()方法。

对于第一次启动的第一次播放的教程部分,我想调用一个单独的更新方法tutorialUpdate()。 我对如何使用此update()tutorialUpdate()正确获取此launchBool值感到困惑。

一旦教程完成,游戏应该恢复正常播放。在调用saveLaunchState()之前,launchboolean变为真,表示第一次播放结束,不再需要教程。< / p>

这就是我现在在render()中调用update()的方法。

case RUN:
    update(delta);
break;

我需要像这样得到布尔值吗?

if(FirstLaunchNotifier.INSTANCE.getLaunchBoolean()) {
     update(delta);
     tutorial update();
}else{
     update(delta);
}

这是正确的方法吗?

1 个答案:

答案 0 :(得分:0)

public class FirstLaunchNotifier { private static FirstLaunchNotifier instance; private Preferences prefs; private boolean launchBoolean; private static final String LAUNCH_KEY = "launch"; private static final String PREF_NAME = "TMS"; private FirstLaunchNotifier(){ prefs= Gdx.app.getPreferences(PREF_NAME); launchBoolean = prefs.getBoolean(LAUNCH_KEY, true); } public static FirstLaunchNotifier getInstance(){ if(instance==null){ instance=new FirstLaunchNotifier(); } return instance; } public void saveLaunchState(boolean state) { launchBoolean=state; prefs.putBoolean(LAUNCH_KEY, launchBoolean); prefs.flush(); } public boolean getLaunchBoolean() { return launchBoolean; } } 作为单身人士。

FirstLaunchNotifier

您可以FirstLaunchNotifier.getInstance()获取if(FirstLaunchNotifier.getInstance().getLaunchBoolean()) { update(delta); tutorial update(); }else{ update(delta); } 的对象,并根据您的要求进行计算,例如

FirstLaunchNotifier.getInstance().saveLaunchState(false);

当用户完成教程部分时,只需调用

{{1}}