public override void Update(GameTime gameTime) { MouseState mousestate = Mouse.GetState(); int mouseX = mousestate.X; int mouseY = mousestate.Y; bool isMouseOver = bounds.Contains(mouseX, mouseY); if (isMouseOver && state != buttonstatus.Pressed) { state = buttonstatus.Hover; } else if (!isMouseOver && state != buttonstatus.Pressed) { state = buttonstatus.Normal; } if (mousestate.LeftButton == ButtonState.Pressed && previousState.LeftButton == ButtonState.Released) { if (isMouseOver) { state = buttonstatus.Pressed; } } if (mousestate.LeftButton == ButtonState.Released && previousState.LeftButton == ButtonState.Pressed) { if (isMouseOver) { state = buttonstatus.Hover; if (clicked != null) { clicked(this, EventArgs.Empty); } } else if (state == buttonstatus.Pressed) { state = buttonstatus.Normal; } } previousState = mousestate; base.Update(gameTime); }
//motion add public void AddMotion(buttonstatus motionname) { playerMotion.Add(motionname); }