因此,我目前正在使用一个名为GameFile的静态类,它包含游戏实例,当前地图,玩家位置,玩家名称,玩家资金等。基本上所有全局信息。我想知道是否有替代方法?

这是我目前在静态类中设置游戏实例的方式(例如):

GameFile.gameInstance = new ChromeGame();


然后当我需要使用信息时

GameFile.gameInstance.addScreen(SplashScreen).

最佳答案

这就是我在手机游戏中的做法。您可以完全拥有OOP概念,并拥有所有设置器/获取器,但是在低型移动设备中,此“ OOP”非常昂贵。

public class GameData {

    public static Model activePlayerModel;
    public static GameMap currentMap;

    public static void load () {
        // read necessary data from external sources. e.g. a file
    }

    public static void updateMap () {
        // update currentMap
    }

    public static Model getActiveModel() {
        // get current model/set default/or read from file and return
    }

    public static GameMap getCurrentMap() {
        // e.g. Create a map or read map from a file, etc
        // return the map
    }

}


现在,我可以直接访问GameData的成员。

public class GameScreen extends Screen {

    Model playerModel;

    public GameScreen (Game game) {
        GameData.load();
        playerModel = Settings.activePlayerModel;
    }

}

关于java - 静态类的替代,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18346659/

10-09 08:42