在这里开发游戏,到目前为止,我已经为我的游戏制作了一个菜单系统。我添加了三个不同的按钮。除了一件事,我把一切都整理好了。
所以,我使用了一个普通的 if intersects 方法来查看鼠标和按钮矩形是否碰撞以播放声音效果。但是,我不知道如何停止这种声音,它一直在循环,直到我将鼠标从按钮上移开。我想让它只播放一次。
public void Update(MouseState mouse, GraphicsDevice graphics, SoundEffect soundEffect)
{
rectangle = new Rectangle((int)position.X, (int)position.Y, (int)size.X, (int)size.Y);
Rectangle mouseRectangle = new Rectangle(mouse.X, mouse.Y, 1, 1);
if(mouseRectangle.Intersects(rectangle))
{
if (mouse.LeftButton == ButtonState.Pressed) isClicked = true;
size = new Vector2(graphics.Viewport.Width / 9, graphics.Viewport.Height / 13);
soundEffect.Play();
}
else
{
size = new Vector2(graphics.Viewport.Width / 10, graphics.Viewport.Height / 14);
isClicked = false;
}
任何帮助将不胜感激。
顺便说一句:这不是必需的,但是当我将鼠标悬停在按钮上时,我遇到了另一个“问题”,它们会变大,这是预期的。但它并没有从中心变大。这有点难以解释,但它在 x 和 y 位置变得更大,而不是 -x 和 -y。它具有相同的位置。