Draw-method在iOS和Android上绘制不同的线条

时间:2014-10-08 11:36:54

标签: ios xamarin.ios xamarin monogame

我正在使用Xamarin开发游戏并使用Monogame。使用完全相同的代码,当我在Android和iOS上玩游戏时,我会得到两个不同的结果。这是一张比较两者的图片:

enter image description here

上面一行来自iOS,下面一行来自Android。有人知道为什么当我们使用完全相同的代码绘制线条时,我们得到两个如此不同的结果?我有一个绘制线的Line类,行类中的draw方法如下。

public void Draw (SpriteBatch spritebatch)
{
    float angle = (float)Math.Atan2 (PointB.Y - PointA.Y,
                                     PointB.X - PointA.X);

    int length = (int)Vector2.Distance (PointA, PointB);

    LineRect = new Rectangle ((int)PointA.X, 
                              (int)PointA.Y,
                              (int)Texture.Width,
                              (int)Texture.Height);

    spritebatch.Draw (Texture,
                      PointA, 
                      LineRect, 
                      Color, 
                      angle, 
                      Vector2.Zero,
                      new Vector2 (length, Width), 
                      SpriteEffects.None, 
                      0);
}

如果我将该行的Texture.Width=1Texture.Height=2以及width更改为3,则可以在Android和iOS上完美运行。

但是如果我想要一条更粗的线,并且Texture.WidthTexture.Height是3并且线条的宽度是12,它就像Android上的魅力一样,但它会变得越来越多在iOS上。

Texture.Width=2Texture.Height = 1以及Width = 13适用于iOS。

所以问题是如何使用不同的Texture.Height,Texture.Width和Width值来破坏这条线?当它只是XNA时,它在iOS和Android上没有提供相同的输出吗?

0 个答案:

没有答案