我有一个基本的按钮类,当鼠标悬停在按钮上时它会发光并适用于我的主菜单。但是,使用暂停功能,我的 x 值将一直不同。我有一个相机类,它改变视口并根据玩家的位置滚动。这一切都很好。然而,当我引入暂停选项时,绘制的“按钮”被正确放置,但是用于鼠标检测的矩形距离它有一段距离。
replay.SetPosition(new Vector2(camera.viewport.Width / 4 + 50,camera.centre.Y));
//replay.SetPosition(new Vector2((int)camera.centre.X , (int)camera.centre.Y);
replay.Update(mouse);
被注释掉的人正确地绘制了图像,但矩形偏离了。未注释的版本具有正确的矩形位置,但图像当前保持在 200(x),250(y)
if (isPaused)
{
spriteBatch.Draw(pauseTexture,pauseRectangle, Color.White);
//replay.Draw(spriteBatch);
exit.Draw(spriteBatch);
mainmenu.Draw(spriteBatch);
}
相机类更新元素:
public void Update(Vector2 position, int xOffset, int yOffset)
{
if (position.X < viewport.Width / 4)
centre.X = viewport.Width / 4;
else if (position.X > xOffset - (viewport.Width / 4))
centre.X = xOffset - (viewport.Width / 4);
else centre.X = position.X;
}
如果需要,我将在一天的大部分时间里添加信息。感谢所有的帮助!