当我使用平移矩阵放大时,为什么有些精灵会停止渲染?
Why do some sprites stop rendering when I zoom in using a translation matrix?
我正在使用 Monogame 构建游戏并且我的相机工作了很长时间,我最近将我所有的精灵从 64*64 更改为 32*32 但我在相机缩放和绘制精灵(查看 GIF),我在 Spritebatch 中使用深度 属性 来订购我的精灵。
绘制方法:
_spriteBatch.Begin(SpriteSortMode.FrontToBack, BlendState.AlphaBlend,
SamplerState.PointClamp, null, null, null, camera.TranslationMatrix);
tileMap.Draw(_spriteBatch);
sceneObjectHandler.Draw(_spriteBatch);
player.Draw(_spriteBatch);
_spriteBatch.End();
GIF:
有人有什么想法吗?
如果以后有人遇到这个 post 我找到了解决方案:
创建用于缩放视图的平移矩阵时使用:
Matrix.CreateScale(scale, scale, 1)
而不是:
Matrix.CreateScale(scale)
使Z-index不影响缩放
我正在使用 Monogame 构建游戏并且我的相机工作了很长时间,我最近将我所有的精灵从 64*64 更改为 32*32 但我在相机缩放和绘制精灵(查看 GIF),我在 Spritebatch 中使用深度 属性 来订购我的精灵。
绘制方法:
_spriteBatch.Begin(SpriteSortMode.FrontToBack, BlendState.AlphaBlend,
SamplerState.PointClamp, null, null, null, camera.TranslationMatrix);
tileMap.Draw(_spriteBatch);
sceneObjectHandler.Draw(_spriteBatch);
player.Draw(_spriteBatch);
_spriteBatch.End();
GIF:
有人有什么想法吗?
如果以后有人遇到这个 post 我找到了解决方案:
创建用于缩放视图的平移矩阵时使用:
Matrix.CreateScale(scale, scale, 1)
而不是:
Matrix.CreateScale(scale)
使Z-index不影响缩放