标题之间的白线

时间:2016-08-16 17:50:23

标签: c# android xamarin monogame

我在Android上使用Monogame和Xamarin创建简单的RPG游戏,我的瓷砖有问题。

我使用的是16x16的图块,但我将它缩放到32x32,我创建了简单的地图编辑器,我可以创建地图并转换为JSON格式。

但是在游戏中加载地图之后我看到了瓷砖之间的线条,这些线条显示了对象应该略微透明的位置 https://i.imgur.com/R9azGQo.png

加载地图

            using (var stream = TitleContainer.OpenStream(path2))
            {
                spriteSheet2 = Texture2D.FromStream(graphicsDevice, stream);
            }
            currSprite = 2;
            for (int y = 0; y < spriteSheet2.Height; y += 32 + 2)
            {
                for (int x = 0; x < spriteSheet2.Width; x += 32 + 2)
                {
                    objects[currSprite].Add(new Rectangle(x, y, 32, 32));

                }
            }

            using (var stream = TitleContainer.OpenStream("Content/x.png"))
            {
                test = Texture2D.FromStream(graphicsDevice, stream);
            }

我调试它并在spritesheet中的任何地方使用GIMP 在地图编辑器中,我没有看到这一行,我怎么能解决它? 我有相同的代码在地图编辑器和游戏中加载spritesheet,在spritesheet中我有2px的边距beetwen tiles。

(我必须用图片创建相册,因为我不能提供两个以上的链接) http://imgur.com/a/RlPKo

将代码中的边距更改为1px后的图像 (参见专辑中的第一张图片)

将瓷砖尺寸更改为31x31后的图像 (参见专辑中的第二张图片)

我在spritesheet中获得位置地砖并使用gimp我检查了边距是否太小,我缩放到这个瓷砖 (参见专辑中的第三张图片)

当我将矩形地砖设置为273,69并将尺寸更改为30,30时(我在瓷砖中没有透明线条的位置矩形,但为什么透明线在游戏中有白色?)时,我可以消除白线。 ) (参见专辑中的最后一张图片)

我通过消除瓷砖透明来修复地板,我如何快速修复所有瓷砖?

1 个答案:

答案 0 :(得分:0)

你的代码很好我观察问题,你的精灵在边框上有透明度。如果你想要删除tile sprite中的所有行,你需要编辑sprite并用纯色替换de border。

transparency in the border

问候