gpt4 book ai didi

java - AndEngine - 场景变量在更改场景后不会重置

转载 作者:行者123 更新时间:2023-11-29 21:49:31 24 4
gpt4 key购买 nike

场景如下:

我有以下场景:

  1. 飞溅场景
  2. 加载场景
  3. 游戏模式场景
  4. 播放模式场景
  5. 游戏场景

我有一个 SceneController 类,它管理场景之间的导航。
在 SceneController 中,我有所有场景的实例。

我正在初始化所有场景实例并在 LoadingScene 中加载所有场景资源。

当我将场景从 GameModeScene 更改为 PlayModeScene - 工作得很好。
但是,当我再次尝试将场景更改为 GameModeScene 时,在第一次运行 GameModeScene 期间初始化的 boolean 值和其他变量保持原样,不会重置。

注意:变量是每个类私有(private)的,是非静态的

我试过 pGameModeSceneto.reset();但它不会工作。
有什么建议吗?

这是我如何初始化场景实例


SceneController.loadSceneResources()

public void loadSceneResources(SceneType mType){
switch(mType){
case SplashScene:
this.mSplashScene = new SplashScene(this.mActivity);
break;


case LoadingScene:
mLoadingScene = new LoadingScene(mActivity);
break;

case GameModeScene:
mGameModeScene=new GameModeScene(this.mActivity);
break;

case PlayModeScene:
mPlayModeScene=new PlayModeScene(this.mActivity);
break;

case GameScene:
break;

default:
}
}

每个类的构造函数正在加载资源。


这是获取当前场景实例的方法

SceneController.getScene() 公共(public)场景 getScene(SceneType mType){

        switch(mType){
case SplashScene:
this.mCurrentScene = mSplashScene;
break;


case LoadingScene:
this.mCurrentScene = mLoadingScene;
break;

case GameModeScene:
this.mCurrentScene = mGameModeScene;
break;

case PlayModeScene:
this.mCurrentScene = mPlayModeScene;
break;

default:
}

最佳答案

在 org.andengine.entity.scene.Scene 类中,有一个 reset() 方法,这就是我假设您在说时指的是什么

I tried pGameModeSceneto.reset(); but it won't work.

所有该方法的作用如下:

@Override
public void reset() {
super.reset();

this.clearChildScene();
}

您的场景(我假设)正在扩展 Scene。因此,当您对它们调用 reset() 时,您所做的就是通过 super.reset() 调用从那里初始化父级信息和上层树。 (场景扩展实体。)您在场景中创建和设置的私有(private)字段都不会受此影响。要获得所需的行为,请覆盖各个场景类中的 reset() 方法。确保在它们的开头调用 super.reset() 并添加初始化信息,即无论你的“空”场景应该是什么样子。像这样:

@Override
public void reset() {
super.reset();
myLocalInt = 0;
myLocalFancyPantsObject = null;
}

关于java - AndEngine - 场景变量在更改场景后不会重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14809930/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com