首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SpriteKit sktilemapnode垂直线路毛刺

SpriteKit sktilemapnode垂直线路毛刺
EN

Stack Overflow用户
提问于 2017-05-10 08:56:57
回答 2查看 319关注 0票数 3

我正在制作一个2d平台,我决定使用多个平铺地图节点作为我的背景。即使使用1个平铺地图,当我在屏幕上移动播放器时,我也会看到这些垂直线或水平线出现或消失。如下图所示:

我的磁贴是256x256,我将它们存储在一个磁贴集sks文件中。我不太确定为什么我会得到这个或者如何摆脱它,这是相当恼人的。想知道其他人是否也经历过这种情况。

考虑不使用磁贴地图,但如果可以的话,我更喜欢使用它们。

感谢您对此的帮助!

EN

回答 2

Stack Overflow用户

发布于 2019-04-08 09:13:28

我也有同样的问题,可以通过将平铺图像“挤压”几个像素来解决它。这提供了一个小的像素缓冲,以便在浮点问题发生时使用,而不是什么都不显示(因此出现间隙)。这个视频很好地总结了这一点。

Unity: extruding tile map images

如果你正在使用TexturePacker生成你的精灵地图集,有一个选项可以自动添加它,而不需要你自己去添加到你的图块图像中。

希望这能有所帮助!

票数 1
EN

Stack Overflow用户

发布于 2021-07-28 21:30:37

有点像@cheaze建议的“挤压”,我只是在绘图代码中设置了比所需的瓦片大小稍大一点的瓦片大小。这意味着资产本身不需要更改。

例如:如果资源的大小为256x256,并且所有计算都基于此;则将纹理绘制为256.02 x 256.02像素的大小:

代码语言:javascript
复制
[SKSpriteNode spriteNodeWithTexture:texture size:CGSizeMake(256.02, 256.02)];

根据您的相机速度和帧速率,只需每侧添加.02像素就会自动重叠您的瓷砖,并消除线条毛刺。

如果问题真的很严重,您甚至可以添加半个像素(+0.5)或整个像素来消除毛刺,但用户将无法看到差异。(因为视网膜屏幕上一个像素的差异很难区分)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43881978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档