这一直困扰着我 - 当我使用下面的代码来增加每次鼠标点击的选择时:
if (m.LeftButton == ButtonState.Pressed)
currentSelection++;
然后currentSelection增加了一吨,因为这个代码在我的Update()函数中并且按照设计运行每一帧,因此增加了currentSelection。您几乎没有机会快速点击和释放,以防止currentSelection增加多个。
现在我的问题是我应该怎么做才能这样做每次我单击鼠标一次,它只会增加currentSelection一次,直到我再次点击下来。
答案 0 :(得分:6)
您需要比较当前鼠标状态和上次更新的鼠标状态。
在你的课堂上,你会宣布MouseState mouseStateCurrent, mouseStatePrevious;
,所以它会像:
mouseStateCurrent = Mouse.GetState();
if (mouseStateCurrent.LeftButton == ButtonState.Pressed &&
mouseStatePrevious.LeftButton == ButtonState.Released)
{
currentSelection++;
}
mouseStatePrevious = mouseStateCurrent;
因此,它会检测到您之前按下它,然后释放它 - 只有这样才会被视为点击,它会添加到currentSelection
。
答案 1 :(得分:2)
我相信你会喜欢这个。