我正在开发Android游戏。整个游戏玩法都在“游戏玩法”课程中。问题是当我想再次启动选项时我不知道如何从“Gameplay”类中删除“mg”对象并创建一个新对象。这是我的代码:
package com.PJA.game;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
public class GameScreen extends BaseScreen {
static short state=1;
Gameplay mg;
Menu mm;
LostScreen ls;
public GameScreen(Gra game) {
super(game);
mm=new Menu();
mg=new Gameplay();
ls=new LostScreen();
}
public void update() {
if(state==1) mm.live();
if(state==2) mg.live();
if(state==3) ls.live();
Gdx.app.log("CurrentState: ", Integer.toString(state));
}
public void drau(SpriteBatch sb) {
if(state==1) mm.show(sb);
if(state==2) mg.show(sb);
if(state==3) ls.show(sb);
}
}
答案 0 :(得分:1)
制作一个新的并将其设置为mg
。
答案 1 :(得分:0)
mg = new Gameplay()
这将创建一个新实例,它将替换旧实例(最终将被垃圾收集)
另一个更冗长的选项是编写.reset()
方法,将Gameplay
的所有字段设置为初始值。这将使您更好地控制要重置的字段,但如果您想要所有内容 - 只需创建Gameplay
的新实例
答案 2 :(得分:0)
初始化构造函数中的所有字段通常是个坏主意。虽然感觉很自然,但它限制了重复使用。创建专用的init()
或reset()
方法通常会更好:
public GameScreen(Gra game) {
super(game);
reset();
}
public void reset() {
mm=new Menu();
mg=new Gameplay();
ls=new LostScreen();
}