每个游戏都需要优化。所以,这是我的下一个问题。
我有4个屏幕,一个菜单,一个商店,一个游戏屏幕和一个屏幕游戏。每一个都加载了大量的纹理。我应该制作4个纹理地图集,每个屏幕1个,并相应地打包纹理。是否有很多性能增益?
我是否应该绕过屏幕而不是处理它们并每次再创建它们?如果我重复使用它们,我会使用更多的ram,那么有什么想法吗?
我得到一个pixmap已经处理错误,这与自由类型字体有关。所以我打算将自由类型字体保存到资产管理器中,之前我没有这样做,因为它没有工作。是否有一种特殊的方法来保存生成器字体?
答案 0 :(得分:0)
我不确定你在做什么,因为你没有发布任何代码,但这通常是我在游戏中所做的:
public MainGame extends Game{
MenuScreen menu;
ShopScreen shop;
GameScreen game;
GameOverScreen gameOver;
public void create(){
menu = new MenuScreen(this);
shop = new ShopScreen(this);
game = new GameScreen(this);
gameOver = new GameOverScreen(this);
this.setScreen(menu);
}
public void render(){
super.render();
}
public void dispose(){
menu.dispose();
shop.dispose();
game.dispose();
gameOver.dispose();
}
}
在每个屏幕中,构造函数如下所示:
MainGame game;
public GameScreen(MainGame game){
this.game = game;
}
所以无论屏幕在哪里,我都可以这样做:
game.setScreen(game.gameOver);
至于你的纹理,我不知道。我从来没有在一个游戏中使用过很多纹理,但我认为最小化纹理数量会让游戏运行得更快。想想看,如果你有很多纹理,游戏必须经历这些纹理中的单个纹理,并渲染每一个纹理,每个渲染方法调用。将其设为较小的数字会减少每次渲染方法调用所需的图片数量。