【问题标题】:How to do mouse selection on grid? Monogame/XNA如何在网格上进行鼠标选择? Monogame/XNA
【发布时间】:2016-04-10 01:54:40
【问题描述】:

我正在创建一个在屏幕的一部分上使用基于图块的战斗的游戏。我已经映射了一个二维节点数组(每个节点都有一个角位置来绘制我的单位),并且我已经完成了一些绘制实际单位的测试。现在我需要开始进行鼠标选择,但是我找不到将鼠标单击映射到数组中特定节点的方法。我将位置存储在每个节点中,但我不知道如何准确使用它们。我希望能够让某人左键单击一个正方形并有一种方法来注册我实际选择的正方形。有什么帮助吗?

This is an example of part of my grid which is in the bottom half of my screen

【问题讨论】:

  • 显示你的单元格位置存储在哪里?

标签: c# grid xna mouse monogame


【解决方案1】:

Rectangle 有一个方法Contains(Point),您可以使用它轻松检测一个点是否在矩形内。


假设您的 Node 类有一个属性 BoundingRectangle

class Node
{
    // ...
    public Rectangle BoundingRectangle
    {
        get { return new Rectangle(x, y, width, height); }
    }
    // ...
}

现在处理鼠标点击:

MouseState mouseState = Mouse.GetState();

if (mouseState.LeftButton == ButtonState.Pressed)
{
    foreach (Node n : nodes)
    {
        if (n.BoundingRectangle.Contains(mouseState.Position))
        {
            // TODO: Code to handle node being clicked...
        }
    }
}

【讨论】:

  • 这正是我想要的。谢谢,我会调查一下。
猜你喜欢
  • 2016-05-27
  • 1970-01-01
  • 2018-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多