如果在一場比賽中同一個對象有點擊它並按住鼠標點擊了它,使用默認輸入(當前和最後MouseState)兩個不同的動作,你就會激活即使在您持有的情況下也可以點擊操作例如,您使用該按鈕拖動n'將一個對象拖放到屏幕上,但是當您單擊它時,它應該消失。當你點擊物體移動它時,它會消失,這是一個不想要的結果。XNA保持和點擊同一對象上
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的消失,檢查標誌,但改變事件時間似乎並沒有成爲一個優雅的解決方案。有任何想法嗎?
感謝大家回答我,但沒有人改變了事實,以實現點擊發布事件,而不是Press。 – Mephy 2012-02-15 16:13:25