v0.8.0: tweaked lifecycle managment, actor thread is now allowed to end
This commit is contained in:
parent
df3a0a010b
commit
f038bde5cc
|
@ -158,10 +158,10 @@ public class Game implements ApplicationListener {
|
||||||
|
|
||||||
public void finish(){
|
public void finish(){
|
||||||
Gdx.app.exit();
|
Gdx.app.exit();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public void destroy(){
|
||||||
public void dispose() {
|
|
||||||
if (scene != null) {
|
if (scene != null) {
|
||||||
scene.destroy();
|
scene.destroy();
|
||||||
scene = null;
|
scene = null;
|
||||||
|
@ -172,6 +172,11 @@ public class Game implements ApplicationListener {
|
||||||
Sample.INSTANCE.reset();
|
Sample.INSTANCE.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void dispose() {
|
||||||
|
destroy();
|
||||||
|
}
|
||||||
|
|
||||||
public static void resetScene() {
|
public static void resetScene() {
|
||||||
switchScene( instance.sceneClass );
|
switchScene( instance.sceneClass );
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
|
|
||||||
package com.shatteredpixel.shatteredpixeldungeon;
|
package com.shatteredpixel.shatteredpixeldungeon;
|
||||||
|
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
|
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.WelcomeScene;
|
import com.shatteredpixel.shatteredpixeldungeon.scenes.WelcomeScene;
|
||||||
import com.watabou.noosa.Game;
|
import com.watabou.noosa.Game;
|
||||||
|
@ -224,7 +225,13 @@ public class ShatteredPixelDungeon extends Game {
|
||||||
updateDisplaySize();
|
updateDisplaySize();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void destroy(){
|
||||||
|
super.destroy();
|
||||||
|
GameScene.endActorThread();
|
||||||
|
}
|
||||||
|
|
||||||
public void updateDisplaySize(){
|
public void updateDisplaySize(){
|
||||||
platform.updateDisplaySize();
|
platform.updateDisplaySize();
|
||||||
}
|
}
|
||||||
|
|
|
@ -204,6 +204,8 @@ public abstract class Actor implements Bundlable {
|
||||||
return current != null;
|
return current != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean keepActorThreadAlive = true;
|
||||||
|
|
||||||
public static void process() {
|
public static void process() {
|
||||||
|
|
||||||
boolean doNext;
|
boolean doNext;
|
||||||
|
@ -284,7 +286,7 @@ public abstract class Actor implements Bundlable {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} while (true);
|
} while (keepActorThreadAlive);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void add( Actor actor ) {
|
public static void add( Actor actor ) {
|
||||||
|
|
|
@ -505,6 +505,13 @@ public class GameScene extends PixelScene {
|
||||||
super.destroy();
|
super.destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void endActorThread(){
|
||||||
|
if (actorThread.isAlive()){
|
||||||
|
Actor.keepActorThreadAlive = false;
|
||||||
|
actorThread.interrupt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized void onPause() {
|
public synchronized void onPause() {
|
||||||
try {
|
try {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user