2012-08-15 121 views
0

我正在開發Android遊戲。整個遊戲是在「遊戲」類。問題是,當我想再次開始選項,我不知道如何從「遊戲玩法」類中刪除「mg」對象並製作一個新的。這裏是我的代碼:在java中重置對象

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); 
    } 
} 

回答

1

做一個新的,並將其設置爲mg

0
mg = new Gameplay() 

這將創建一個新的實例,將取代舊的(這將最終被垃圾收集)

另一種選擇,這是方式更詳細的,是寫一個.reset()方法是將所有Gameplay的字段設置爲初始值。這將使您更好地控制要重置的字段,但是如果您想要所有內容 - 只需創建一個新實例Gameplay

0

初始化構造函數中的所有字段通常是一個壞主意。雖然感覺很自然,但它限制了重複使用。創建專用init()reset()方法通常會更好:

public GameScreen(Gra game) { 
    super(game); 

    reset(); 
} 

public void reset() { 
    mm=new Menu(); 
    mg=new Gameplay(); 
    ls=new LostScreen(); 
}