我在Monogame开展一个小项目。
虽然我有一点小烦恼。目前我在游戏开始时加载纹理等,只有一次。
然后我从CSV文件中绘制地图,所以目前我正在绘制一张3600个瓷砖的地图,每个瓷砖的尺寸为32x32。
要访问磁贴,游戏必须通过一组Texture2D(数组内的1024个磁贴)读取。事情是它有点滞后......它可以很容易地处理100个瓷砖地图,但是在这个更大的地图上它只是滞后很多?
任何人都知道为什么会这样吗?如果需要任何代码,请告诉我并编辑我的帖子。
答案 0 :(得分:0)
这听起来像是一个优化问题。当然,您不需要立即绘制所有3,600个地图图块 - 只需要玩家可以看到的图块?当他们在地图上移动时,您可以有一个事件来加载更多的图块并销毁已经不在视图中的图块。
因此,您需要添加一种方法来跟踪玩家可以看到的内容并仅在此边界内加载切片。
想想我的世界。如果它试图在运行时将数十亿个块加载到内存中,那么它会很快崩溃。相反,它只渲染玩家可以看到的块。