我正在尝试在等距2D游戏中确定鼠标在哪个精灵上。我认为我最好的选择是将每个精灵的不同颜色绘制成一个单独的renderTarget2D
并将其转换为Texture2D
,此时我可以从鼠标点获取颜色数据并根据绘制的方式进行检查精灵。
我使用该方法的问题是,我无法将单个精灵的颜色更改为纯色。如果我在spriteBatch.Draw
调用中更改颜色,它只会调整精灵的颜色,而不是将颜色绘制为纯色,因此从纹理中检索的数据无效。
有关以纯色绘制精灵的任何建议或帮助吗?
答案 0 :(得分:6)
不要这样做。创建一个新的渲染目标并将数据复制到内存中,即使每秒只有几百个精灵,也只是远远超出当前系统可以处理的内容。
只需使用Rectangle结构的Contains
方法:
var destination = new Rectangle(100, 100, 50, 50);
bool mouseOver = destination.Contains(mouseX, mouseY);