XNA / MonoGame鼠标卡

时间:2015-11-13 17:43:40

标签: c# xna monogame

enter image description here

蓝色重叠绿色,重叠红色。

可以通过将鼠标移到它上面来选择每张卡。但是我的hitboxs没有深度概念(z轴),它是一个2D游戏。

因此,当我将鼠标悬停在绿色和红色上时,我想要选择绿色卡,因为光标在绿色HitBox中而且还在Red HitBox中。

所以我的问题是如何管理这个:当我有重叠的hitbox,如何只检查未覆盖的区域?

注意:我使用Rectangle Intersect和Contains函数。

1 个答案:

答案 0 :(得分:0)

  

但是我的hitboxs没有深度概念(z轴),它是2D游戏....所以我的问题是我应该如何管理

仅仅因为它是2D游戏(我的意思是相机将某些世界从 x D投射到2D)并不代表你的场景必须在2D 。因为您的卡片可以相互重叠您的场景具有深度,因此它是3D。

一旦你意识到这一点,点击三维场景中物体的检测是微不足道的。

  1. 从鼠标中射出光线,反投影到场景中
  2. 测试以查看它击中的对象
  3. 取最接近原点的第一个对象
  4. enter image description here