c#,xna,wp7触摸屏无法正常工作

时间:2011-05-02 18:42:23

标签: c# windows-phone-7 touchscreen xna-4.0

我正在制作一个wp7应用程序,而我的触摸屏似乎无法正常工作。我写的代码在

下面
protected override void Update(GameTime gameTime)
{
    TouchCollection touches = TouchPanel.GetState();
    if (touches.Count > 0 && touches[0].State == TouchLocationState.Pressed)
    {
        SpriteFont font = Content.Load<SpriteFont>("Font");
        Point touchPoint = new Point((int)touches[0].Position.X, (int)touches[0].Position.Y);
        spriteBatch.Begin();
        spriteBatch.DrawString(font, "hello ", new Vector2(touchPoint.X, touchPoint.Y), Color.White);
        spriteBatch.End();

        while (TouchPanel.IsGestureAvailable)
        {
            GestureSample gesture = TouchPanel.ReadGesture();
            switch (gesture.GestureType)
            {
                case GestureType.Tap:
                case GestureType.DoubleTap:
                    spriteBatch.Begin();
                    spriteBatch.DrawString(font, " ", new Vector2(touchPoint.X, touchPoint.Y), Color.White);
                    spriteBatch.End();
                    break;
            }
        }
    }
    base.Update(gameTime);
}

2 个答案:

答案 0 :(得分:1)

问题可能在于您尝试在Update方法中绘制内容。 绘制方法用于绘图。 因此,在您的情况下,您在Update方法中绘制一些东西,然后在Draw方法中绘制背景,这样就可以覆盖文本。

protected override void Draw(GameTime gameTime)
{
    GraphicsDevice.Clear(Color.CornflowerBlue);
    // overriding here
    ... draw background

    // *draw your text should be here
    base.Draw(gameTime);
}

所以解决方法是移动“spriteBatch.DrawString(...);”绘制方法并将其放在下面 代码中的背景或添加深度参数来绘制方法。

答案 1 :(得分:0)

现在看你的代码,似乎没有什么不对,但你试过踩过它吗?我看到点击或双击同样的事情,但也许有些事情被挂断了。

我想到的第一件事就是你的XAML。你有控件或其他一切吗?这可能会抓住你的手势。

如果两者都不起作用,你能发布更多信息吗?