我有一个像宠物小精灵或塞尔达一样的2D自顶向下的45度游戏。由于对象的y值决定了它的深度,因此需要按照y值的顺序绘制对象。所以,当你站在一棵树后面时,树就会画在你的播放器的顶部,看起来就像站在树后面一样。在呈现之前按y值排序对象?
我目前的设计是绘制一排瓷砖,然后画出所有站在那一排上的玩家,然后画下一行,然后画出所有站在其上的玩家。这样,任何具有比玩家更高的y值的图块都将被绘制在它们的前方以模拟深度。
但是,我的玩家目前是一个std::vector
的对象,只需在绘制完所有贴图后进行迭代和绘制即可。对于我的方法来说,我必须迭代瓦片的每一行的向量,并且只在它们位于当前行上时呈现,或者按照每个帧的y值对每个玩家进行排序。这两种方法似乎都是CPU密集型的,也许我过度思考它,并且在这种类型的游戏中有一种更简单的模拟深度的方法。
编辑: 这个游戏是一个MMORPG类型的游戏,所以有可能是许多玩家/ NPC的走动这就是为什么我需要一个非常有效的方法。
想法或意见将不胜感激!
感谢