-
Notifications
You must be signed in to change notification settings - Fork 170
Open
Description
问题: JavaANAppSurfaceView.surfaceCreated 不移除所有纹理的话, 会有问题吗?
代码版本: 148d54077b1de819cf0958cc198b69ab97d67411
引擎代码: Java/Loon-Lite(PureJava)/LoonLiteCore, Java/Loon-Lite(PureJava)/LoonLiteJavaAN
例子项目: 使用这些目录里面的资源和代码Java/examples/assets, Java/examples/org, Java/Loon-Neo/src/assets, 创建了一个纯Java的Android Studio工程. 项目可以运行(拍拍手👏)!
但是, app 退到后台, 再返回前台, 图片不见了
但是, 文字还在, 按钮也在
打断点调试发现 JavaANAppSurfaceView.surfaceCreated 里面会清掉所有纹理.
public class JavaANAppSurfaceView ... {
@Override
public void surfaceCreated(SurfaceHolder surfaceHolder) {
updatePpi();
start();
if (_game != null) {
// LSystem.resetTextureRes(_game); // 注释这行
if (_game.display() != null) {
_game.display().GL().update();
}
LSystem.d("Created Renderer View");
}
}
}注释以后, app 返回前台图片还在!!!
原例子代码的改动:
原例子有些代码在 LoonLiteCore 引擎里没有. 所以移除一些例子代码.
MultiScreenTest 里面移除了一些:
public class MultiScreenTest extends Screen {
// ...
@Override
public void onLoad() {
// ...
if (page == 0) {
addScreen(page0[index++], new LMessageBoxTest());
// addScreen(page0[index++], new Live2dTest());
addScreen(page0[index++], new ActionEventTest());
addScreen(page0[index++], new EffectTest());
addScreen(page0[index++], new EmulatorTest());
addScreen(page0[index++], new TileMapTest());
// addScreen(page0[index++], new SpriteBatchTest());
addScreen(page0[index++], new BDFontTest());
addScreen(page0[index++], new BMFontTest());
addScreen(page0[index++], new LayoutTest());
addScreen(page0[index++], new TableTest());
addScreen(page0[index++], new MenuTest());
// addScreen(page0[index++], new DecideNameTest());
addScreen(page0[index++], new ToastTest());
addScreen(page0[index++], new ListTest());
addScreen(page0[index++], new SpriteTest());
addScreen(page0[index++], new LTexturePackTest());
// addScreen(page0[index++], new NodeTest());
addScreen(page0[index++], new ScrollTest());
// addScreen(page0[index++], new CycleTest());
addScreen(page0[index++], new TextAreaTest());
addScreen(page0[index++], new ProgressTest());
addScreen(page0[index++], new ParticleTest());
addScreen(page0[index++], new SelectIconTest());
addScreen(page0[index++], new ControlTest());
addScreen(page0[index++], new JSonResTest());
addScreen(page0[index++], new SpriteSheetFontTest());
addScreen(page0[index++], new ParticleConfigTest());
addScreen(page0[index++], new RippleTouchTest());
addScreen(page0[index++], new SoundTest());
addScreen(page0[index++], new GestureTest());
// addScreen(page0[index++], new PhysicalTest());
// addScreen(page0[index++], new Node2Test());
addScreen(page0[index++], new SysInputTest());
addScreen(page0[index++], new DepthTest());
// addScreen(page0[index++], new CanvasLayerTest());
addScreen(page0[index++], new GameMapTest());
// addScreen(page0[index++], new MovieClipTest());
addScreen(page0[index++], new TextureImageTest());
addScreen(page0[index++], new SessionTest());
} else if (page == 1) {
addScreen(page1[index++], new Test());
addScreen(page1[index++], new SliderTest());
addScreen(page1[index++], new AlertTest());
addScreen(page1[index++], new AnimationTest());
addScreen(page1[index++], new FrameLoopTest());
addScreen(page1[index++], new RocScriptTest());
addScreen(page1[index++], new ScrollTextTest());
addScreen(page1[index++], new LightImageTest());
addScreen(page1[index++], new CountdownTest());
addScreen(page1[index++], new TitleScreen());
addScreen(page1[index++], new TDTest());
addScreen(page1[index++], new LLKTest());
addScreen(page1[index++], new TextFieldTest());
// addScreen(page1[index++], new SRPGTest());
addScreen(page1[index++], new PShadowTest());
addScreen(page1[index++], new MapTest());
// addScreen(page1[index++], new ImageTest());
addScreen(page1[index++], new NaturalTest());
addScreen(page1[index++], new MenuSelectTest());
addScreen(page1[index++], new CheckBoxTest());
addScreen(page1[index++], new TextTreeTest());
addScreen(page1[index++], new SLGTest());
addScreen(page1[index++], new I18NTest());
// addScreen(page1[index++], new ButtleTest());
addScreen(page1[index++], new HexagonMapTest());
addScreen(page1[index++], new LabelTest());
addScreen(page1[index++], new GridTest());
addScreen(page1[index++], new ElementsOrderTest());
// addScreen(page1[index++], new QRCodeTest());
addScreen(page1[index++], new ChopTest());
// addScreen(page1[index++], new CachePoolTest());
addScreen(page1[index++], new JSonViewTest());
// addScreen(page1[index++], new HtmlViewTest());
addScreen(page1[index++], new CompNewLine());
addScreen(page1[index++], new CollisionWorldTest());
addScreen(page1[index++], new GravityTest());
addScreen(page1[index++], new JigsawTest());
// addScreen(page1[index++], new TetrisTest());
addScreen(page1[index++], new ExplosionTest());
addScreen(page1[index++], new FlappyBirdTest());
} else if (page == 2) {
addScreen(page2[index++], new TimerTest());
addScreen(page2[index++], new SnakeTest());
addScreen(page2[index++], new TextEffectTest());
addScreen(page2[index++], new MarginTest());
addScreen(page2[index++], new DefineMoveTest());
addScreen(page2[index++], new IntervalTest());
addScreen(page2[index++], new SchedulerTest());
// addScreen(page2[index++], new ShaderTest());
// addScreen(page2[index++], new FrameBufferTest());
addScreen(page2[index++], new TaichiTest());
addScreen(page2[index++], new StatusTest());
addScreen(page2[index++], new DragTest());
addScreen(page2[index++], new RadarTest());
addScreen(page2[index++], new PathMoveTest());
addScreen(page2[index++], new AnswerTest());
addScreen(page2[index++], new PreloadTest());
}
}
}Activity:
public class MainActivity2 extends JavaANApplication {
@Override
public LazyLoading.Data main(JavaANSetting setting) {
// 配置游戏设置
setting.appName = "My Loon Game";
setting.width = 480;
setting.height = 800;
setting.fullscreen = false;
setting.isCheckResize = true;
// setting.disposeTexture = false;
// setting.isFPS = true;
// setting.isDrawCall = true;
// setting.isMemory = true;
// 返回游戏主界面
return new LazyLoading.Data() {
@Override
public Screen onScreen() {
// return new GameScreen();
return new MultiScreenTest();
}
};
}
}运行起来的 app :
Metadata
Metadata
Assignees
Labels
No labels
