Если у одного и того же объекта в игре есть два разных действия: щелкнуть по нему и удерживать нажатой кнопку мыши над ним, используя ввод по умолчанию (текущий и последний MouseState), вы активируете действие щелчка даже при удерживании,Например, вы используете удержание, чтобы перетащить объект на экран, но когда вы щелкнете по нему, он должен исчезнуть.В тот момент, когда вы просто нажимаете на объект, чтобы переместить его, он исчезнет, что является нежелательным результатом.
MouseState current, last;
public void Update(GameTime gameTime) {
current = Mouse.GetState();
bool clicked = current.LeftButton == ButtonState.Pressed && last.LeftButton == ButtonState.Released;
bool holding = current.LeftButton == ButtonState.Pressed;
if(clicked) vanishObject();
if(holding) moveObject(current.X, current.Y);
last = current;
}
Я подумал, чтобы решить его, используя флаг «удерживается более N секунд» иустановите значение исчезновения на ReleasedClick, отметив флаг, но изменение времени события не кажется элегантным решением.Есть идеи?