我是 xna 的新手。我刚刚创建了一个具有透明背景(洋红色)的 Sprite 。问题是我的 Rectangle 正在读取整个 Sprite 的坐标,而不是可见的。我如何让它只读可见的 Sprite 。
myrectangle = new Rectangle(0, 0, box.Width, box.Height);
我想把我的可见部分放在那个位置不透明。提前致谢。
最佳答案
要将颜色转换为透明,请转到纹理属性、内容处理器并启用颜色键,并将键颜色设置为洋红色。
然后要将 Sprite 定位到您想要的位置,您需要设置正确的原点。
要将船舶中心设置在所需位置,需要设置原点,如图所示:
所以当你画它的时候,你需要做类似这样的事情:
var origin = new Vector2(40,40);
spritebatch.Draw(shipTexture, shipPosition, null, Color, origin, ...)
您也可以更改纹理矩形源:
var texSource = new Rectangle( 25,25, 30,30);
spritebatch.Draw(shipTexture, shipPosition, texSource, Color)
虽然如果你想把船定位在它的中心你可能需要改变原点
关于c# - XNA如何使xna不读取透明颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18416924/