1

我正在尝试确定鼠标在等距 2D 游戏中位于哪个精灵上。我认为我最好的选择是将每个精灵绘制成一个单独的颜色renderTarget2D并将其转换为一个Texture2D,此时我可以从鼠标点获取颜色数据并与绘制的精灵进行检查。

我使用该方法遇到的问题是我无法将单个精灵的颜色更改为纯色。如果我在调用中更改颜色spriteBatch.Draw,它只会对精灵的颜色进行着色,而不是将其绘制为纯色,因此我从纹理中检索到的数据没有帮助。

有什么建议或帮助以纯色绘制这些精灵吗?

4

1 回答 1

6

不要那样做。创建一个新的渲染目标并将数据复制到内存中,即使是每秒 60 次的一百个精灵,也远远超出了当前系统的处理能力。

简单使用ContainsRectangle 结构的方法:

var destination = new Rectangle(100, 100, 50, 50);
bool mouseOver = destination.Contains(mouseX, mouseY);
于 2013-01-30T23:33:05.183 回答