我正在使用Xamarin开发游戏并使用Monogame。使用完全相同的代码,当我在Android和iOS上玩游戏时,我会得到两个不同的结果。这是一张比较两者的图片:
上面一行来自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=1
和Texture.Height=2
以及width
更改为3,则可以在Android和iOS上完美运行。
但是如果我想要一条更粗的线,并且Texture.Width
和Texture.Height
是3并且线条的宽度是12,它就像Android上的魅力一样,但它会变得越来越多在iOS上。
Texture.Width=2
和Texture.Height = 1
以及Width = 13
适用于iOS。
所以问题是如何使用不同的Texture.Height,Texture.Width和Width值来破坏这条线?当它只是XNA时,它在iOS和Android上没有提供相同的输出吗?