我正在开发一款游戏(在XNA / MonoGame中),其中我拥有大量的世界,包含许多具有不同纹理的单独瓷砖。我将我的世界存储为2D数组并进行渲染,我只需遍历每个图块并将其绘制在正确的位置。
最近我在相机中实现了缩放功能。我的游戏相机是在通常的#39; XNA方式,您可以根据位置和比例创建矩阵,并将其传递到SpriteBatch.Begin()调用中。我的变换矩阵计算如下:
Transform = Matrix.Identity *
Matrix.CreateTranslation(-(int)Position.X, -(int)Position.Y, 0) *
Matrix.CreateTranslation(Origin.X, Origin.Y, 0) *
Matrix.CreateScale(Scale);
我现在面临的问题是当我放大(通过更改相机的缩放变量)时,某些平铺纹理在某些缩放级别看起来很奇怪。以下是一些显示我的意思的图片:
这是一张完美精确缩放级别的地图:
这是相同地图的缩小(和裁剪)视图,注意沙子纹理是如何被强调的"升级":
我没有太多的图形编程经验,也不知道这是由什么引起的,但是它让地图看起来很笨拙。