确定鼠标结束的精灵

时间:2013-01-30 21:45:02

标签: xna mouseover isometric

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

我使用该方法的问题是,我无法将单个精灵的颜色更改为纯色。如果我在spriteBatch.Draw调用中更改颜色,它只会调整精灵的颜色,而不是将颜色绘制为纯色,因此从纹理中检索的数据无效。

有关以纯色绘制精灵的任何建议或帮助吗?

1 个答案:

答案 0 :(得分:6)

不要这样做。创建一个新的渲染目标并将数据复制到内存中,即使每秒只有几百个精灵,也只是远远超出当前系统可以处理的内容。

只需使用Rectangle结构的Contains方法:

var destination = new Rectangle(100, 100, 50, 50);
bool mouseOver = destination.Contains(mouseX, mouseY);