XNA如何使xna不读取透明色

use*_*465 3 c# xna xna-4.0

我对xna很新.我刚刚创建了一个透明背景(品红色)的精灵.问题是我的Rectangle正在读取整个精灵的坐标而不是可见的精灵.如何使它只读取可见的精灵.

myrectangle = new Rectangle(0, 0, box.Width, box.Height);
Run Code Online (Sandbox Code Playgroud)

我想将可见部分放在那个位置不透明.提前致谢.

Bla*_*lau 6

要将颜色转换为透明,请转到纹理属性,内容处理器和启用颜色键,然后将颜色键设置为洋红色.

在此输入图像描述

然后,要将精灵定位在您想要的位置,您需要设置正确的原点.

要将船舶中心设置在所需位置,需要设置原点,如下所示: 在此输入图像描述

所以当你绘制它时,你需要做类似的事情:

 var origin = new Vector2(40,40);
 spritebatch.Draw(shipTexture, shipPosition, null, Color, origin, ...)
Run Code Online (Sandbox Code Playgroud)

您也可以更改纹理矩形源:

 var texSource = new Rectangle( 25,25, 30,30);
 spritebatch.Draw(shipTexture, shipPosition, texSource, Color)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如果您想将船舶定位在其中心,则可能需要更改原点