|
在Minecraft中,当玩家创建一个方块的时候,Minecraft底层代码并不会直接创建一个Block类的类实例化对象,而是创建一个PosBlock类的类实例化对象,这是为什么呢?
Mojang之所以这么做,主要是优化游戏性能,背后的工作原理在于:
1.当游戏初始化(玩家打开游戏后),Minecraft会创建很多很多的Block类的类实例化对象,每一个类实例化对象都对应着一个方块,内部有方块的信息(这需要消耗巨大的资源)
2.当玩家在游戏里面创建一个方块的时候,游戏内部会创建一个PosBlock类的类实例化对象,这个类实例化对象会有一个属性,这一个属性指向于指定方块的Block类的类实例化对象,还有一个属性,用于记录方块的(x,y,z)坐标
3.游戏系统会通过PosBlock获取到指定方块的Block类实例化对象,然后获取到方块的贴图,数据,并创建临时数据存储
4.当玩家相机没有在这一个方块上,临时数据就会被释放,从而节省内存空间
总结: Mojang使用享元设计模式优化方块类,让我们玩家可以在游戏里面流畅游玩
致敬每一位开发者,感谢开发者们的辛勤工作!!! |
|