我正在尝试实现按下和释放按钮功能,并且得到一个我无法弄清楚原因的非工作结果。
public class Button
{
public TouchLocation oldTouch, currentTouch;
public virtual void Update(GameTime gameTime)
{
TouchCollection touchCollection = TouchPanel.GetState ();
if (touchCollection.Count > 0) {
currentTouch = touchCollection [0];
if (currentTouch.Position.X > position.X && currentTouch.Position.X < position.X + width &&
currentTouch.Position.Y > position.Y && currentTouch.Position.Y < position.Y + height) {
if (currentTouch.State == TouchLocationState.Released && oldTouch.State == TouchLocationState.Pressed) {
buttonEvent.Invoke (this, new EventArgs ());
}
}
}
oldTouch = currentTouch;
}
}
首先,当我分配以下对象时:
currentTouch = touchCollection [0];
我明白了
“类型或参数的数量不正确”
红色作为本地调试窗口中的值(没有错误,只是红色文本值)。
然而,它仍然正确地通过了位置检查 IF 语句,但它没有通过Pressed
/ Release
IF 语句。如果我替换currentTouch
为,touchCollection[0]
那么一切都会按预期进行。
我是否TouchLocation
错误地使用/分配了对象?
或者我可能只是忽略了一个简单的错误?