2012-02-15 4 views
4

私は簡単な質問がある、私はWindows Phoneのための巨大なゲームを作ろうとしているが、私はまだ重要なボトルネック/問題/悪いパフォーマンスがあります。ジェスチャーFreeDragの性能

私はマンゴープロファイラを使用しましたが、問題は見られませんでしたが、実際には携帯電話では10%のCPUしか使用していません。

私にあなたに問題を教えてあげてください。

これはこれは、マップは、問題はそれがDRAWは、UPDATEのために遅すぎると思われる場合、またはちょっと

protected override void Draw(GameTime gameTime) 
    { 
     GraphicsDevice.Clear(Color.CornflowerBlue); 

     spriteBatch.Begin();   
     spriteBatch.Draw(map, Position, null, Color.Red, 0f, Vector2.Zero, 1f, SpriteEffects.None, 1f); 
     spriteBatch.End(); 

     base.Draw(gameTime); 
    } 

をにTexture2D 20x15である私のドロー、である私の更新

protected override void Update(GameTime gameTime) 
    { 
     if (TouchPanel.IsGestureAvailable) 
     { 
      var gs = TouchPanel.ReadGesture(); 
      switch (gs.GestureType) 
      { 
       case GestureType.FreeDrag: 
        Position += gs.Delta; 
        break; 
      } 
     } 
     base.Update(gameTime); 
    } 

ですの。

は、例えば:

1)私は非常にゆっくりと、右の画面をドラッグ - >マップテクスチャが正しく右

2)私は、その後に、右側の画面をドラッグで移動しています左、かなり速い - >地図のテクスチャは右に正しく動いていますが、右に動いているように、左に動いているときに少し遅れがあります。

3)画面を円形にドラッグして1秒で円 - >まあ、地図は円を描くために3秒必要です。

私が間違っているのは何ですか?

私はyoutubeビデオを表示する必要がありますか?

ありがとうございます! Luca

答えて

2

FIXED!

これは、それは、我々はドロー前に、同じ時間に複数のタッチを持っているので、我々は

if (TouchPanel.IsGestureAvailable) 

に代わりIFのWHILEを入れなければならないことが起こるかもしれ..

愚かでした

while (TouchPanel.IsGestureAvailable) 

これは今チャームのように動作します!

これは、同じ問題を抱えている可能性のある人々に役立つことを願っています。

関連する問題