我正在开发我的第一款Android游戏,它包含了大量的位图。一切都很好,直到我决定在游戏活动背后的应用程序中添加“主要活动”。
在:
[Game Activity] --> SurfaceView --> init (loading bitmaps) --> starting the game
现在:
[Main Activity] --> (user needs to click on "PLAY" button) -->...
[Game Activity] --> SurfaceView --> init (loading bitmaps) --> starting the game
这是问题所在。每次用户点击PLAY按钮时,都会创建一个新的Game Activity实例,它必须经过“init”并重新加载位图... 编辑:例如,如果在游戏过程中用户按下后退按钮。
显然,这是一个设计糟糕的架构。有人能提出更有效的建议吗?
答案 0 :(得分:1)
使用静态类存储位图,在游戏开始时调用load()方法(可能在启动画面期间),此方法还可确保您只将每个位图加载到内存中一次。
例如:
public class Art {
public static Bitmap enemy;
public static Bitmap player;
public static void load () {
enemy = loadBitmap('enemy.png');
player = loadBitmap('player.png');
}
private static Bitmap loadBitmap(String filename) {
//create and return bitmap here
}
}
然后,当您创建游戏对象时,您只需调用Art.player即可获得您的玩家形象。
也许,你不应该使用两个活动,而只是在用户点击游戏时移动布局。