我想为第一次发布游戏创建我的游戏教程。下次教程不应该发生。 为此,我创建了一个优先存储的布尔值,以指示启动是否为第一个。
我的单身偏好类包括在这里:
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);
}
这是正确的方法吗?
答案 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}}