0

我正在使用 XNA 开发一个 Windows 应用程序。

实际上我成功地移动了我的精灵,但是当用户触摸精灵但不移动它时,我想添加一个不同的动作。我知道TouchlocationStateEnum存在,但我不明白 和 之间的Moved区别Pressed
现在我使用Released它就足够了,我在精灵位置没有释放时更新它,然后我检查碰撞。那么如何在单击时仅添加一种触摸方法?我的意思是当用户点击精灵但不移动它时。一些代码:

TouchPanelCapabilities touchCap = TouchPanel.GetCapabilities();
if (touchCap.IsConnected)
{
    TouchCollection touches = TouchPanel.GetState();
    if (touches.Count >= 1)
        {
        Vector2 PositionTouch = touches[0].Position;

        if (touches[0].State == TouchLocationState.Released)
        {
            // Pause button click and others buttons
            Mouseclik((int)PositionTouch.X, (int)PositionTouch.Y);       
        }

        if (!PausePopUp)
        {
            CheckMoove(PositionTouch);
            if (touches[touches.Count - 1].State == TouchLocationState.Released)
            {
            // this is where i try to add/check if its only "click" on my sprite
                    if (touches[0].Position == touches[touches.Count - 1].Postion)
                    {
                        TempoRectangle = ListSprite[save].ShapeViser;
                        isclicked = true;
                    }

我的目标是在精灵上方添加一个图片框以显示信息,然后如果在显示图片框时触摸另一个精灵,我想在这两个精灵之间画一条线。

4

1 回答 1

0

区别很简单:

  • TouchLocationState.Pressed表示检测到新位置。
  • TouchLocationState.Moved表示位置位置在同一位置被更新或按下

这意味着您将仅获得Pressed每个触摸动作的状态,Moved按下触摸时每个循环的序列,当您释放它时,您将获得一个Released.

您提供的链接中也对此进行了说明。

于 2013-11-14T14:03:05.610 回答