c# - XNA如何使xna不读取透明颜色

标签 c# xna xna-4.0

我是 xna 的新手。我刚刚创建了一个具有透明背景(洋红色)的 Sprite 。问题是我的 Rectangle 正在读取整个 Sprite 的坐标,而不是可见的。我如何让它只读可见的 Sprite 。

myrectangle = new Rectangle(0, 0, box.Width, box.Height);

我想把我的可见部分放在那个位置不透明。提前致谢。

最佳答案

要将颜色转换为透明,请转到纹理属性、内容处理器并启用颜色键,并将键颜色设置为洋红色。

enter image description here

然后要将 Sprite 定位到您想要的位置,您需要设置正确的原点。

要将船舶中心设置在所需位置,需要设置原点,如图所示: enter image description here

所以当你画它的时候,你需要做类似这样的事情:

 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)

enter image description here

虽然如果你想把船定位在它的中心你可能需要改变原点

关于c# - XNA如何使xna不读取透明颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18416924/

相关文章:

c# - 在 async/await 上阻塞主线程

xna - 如何使用 WiX 收获 XNA 内容文件?

c# - 在 XNA 中缩放 Texture2D

c# - 进程中的 pg_dump 未写入任何文件

c# - 添加页码参数时,Report Services 在本地报告的 visual studio 调试器中崩溃

c# - 围绕中心 vector2 点旋转对象

c# - 从对 XML 文件中构建内容的引用加载纹理

c# - Visual Studio XNA 4.0 Refresh - 创建新项目和打开现有项目时出现问题

c# - Exe 编程语言标识

c# - C# 中的结构(找不到类型)