Чтобы щелчки мышью работали эффективно, вам необходимо сделать следующее:
Первым делом мы создаем класс MouseInput, он должен отслеживать такие вещи, как mouseState, lastMouseState, MouseX, MouseY. MouseState и lastMouseState работают вместе, чтобы обработать 1 щелчок. Но пока вы можете просто добавить этот класс в свой проект:
class MouseInput
{
private static MouseState mouseState;
private static MouseState lastMouseState;
public static MouseState MouseState
{
get { return mouseState; }
set { mouseState = value; }
}
public static MouseState LastMouseState
{
get
{
return lastMouseState;
}
set
{
lastMouseState = value;
}
}
public MouseInput()
{
}
public static int getMouseX()
{
return Mouse.GetState().X;
}
public static int getMouseY()
{
return Mouse.GetState().Y;
}
}
После того, как вы это сделаете, вы хотите начать поиск щелчка мыши каждый раз, когда выполняется ваш метод обновления:
MouseInput.LastMouseState = MouseInput.MouseState;
// Get the mouse state relevant for this frame
MouseInput.MouseState = Mouse.GetState();
После того, как вы выполнили эти 2 важных шага, вы можете продолжить и использовать свой код где угодно, например:
if (MouseInput.LastMouseState.LeftButton == ButtonState.Released && MouseInput.MouseState.LeftButton == ButtonState.Pressed) {
//Execute code here
}
Конечно, как и в предыдущем случае, оператор if проверяет только, нажал ли игрок левую кнопку мыши, вам все равно придется проверять, находятся ли позиции мыши внутри кнопки.
Если у вас есть вопросы, не стесняйтесь спросить
person
Aintaro Mocrosoft
schedule
08.09.2015