难道从Xna中的单独类中绘制矩形?

时间:2014-01-22 18:15:59

标签: c# xna

我正在创建一个用于在游戏菜单中创建简单的课程。我能够绘制按钮的矩形并绘制纹理。但是当我尝试悬停选择功能时,矩形似乎是纹理之外的其他位置。我编程它,所以当鼠标悬停在其中一个按钮矩形上时,按钮的纹理会发生变化。 <此功能不起作用。它只在我将鼠标悬停在屏幕上的某个位置时才有效。我需要帮助。顺便说一句,我是初学者。我认为所有的矩形都是在屏幕中间绘制的,因为它们并没有真正正确地绘制。如果您想了解更具体的细节,我很乐意为您提供。 请帮忙。感谢

enter code here
    public void Draw(SpriteBatch spriteBatch)
    {
        if (SelBaNum == 0)
            for (int i = 0; i < recNum; i++)
                spriteBatch.Draw(BaseButton, buttonList[i], Color.White);
        else
        {
            for (int i = 0; i < recNum; i++)
            {
                if (i != RectangleNum)
                spriteBatch.Draw(BaseButton, buttonList[i], Color.White);
                else
                spriteBatch.Draw(SelectButton, buttonList[i], Color.White);
            }
        }
    }

这是我班级中draw方法的代码。 recNum是要绘制的矩形数。 RectangleNum是鼠标所在矩形的索引。 SalBaNum是一个字节,告诉我鼠标是否在矩形上。

enter code here
            InstMenu.Draw(spriteBatch);

这行代码运行的是我在Game1类的draw方法中放置的方法。

enter code here
    public void Update(MouseState mouse)
    {

        Rectangle mouseRec = new Rectangle(mouse.X, mouse.Y, 2, 2);

        for (int i = 0; i < recNum; i++)
        {
            if (buttonList[i].Contains(mouseRec))
            {
                SelBaNum = 1;
                RectangleNum = i;
             }
            else
            {
                SelBaNum = 0;
            }
        }
    }

这是SalBaNum给出的值。上面的方法也在我的课程中,我正在编程。

它不允许我发布图片。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

好的,对于其他会读这篇文章的人。 问题在于放置鼠标矩形的位置。它与我展示的代码无关。这只是为了让没有人感到困惑。

由于