タッチ/マルチタッチ入力に問題があります。
ユーザーが押したところに100x100の小さな長方形を描きたい(ミッションは達成されました)が、ユーザーが指を動かしたときにそれらを動かしたい(それはatmではありません)。
動かない部分に加えて、奇妙な動作も得られます。たとえば、最初に親指で触れ、次に中指で触れたとします。各指の下に 2 つの立方体が表示されますが、最初に置いた指 (このシナリオでは親指) を離すと、2 番目に置いた指 (中指) の下の立方体が消え、親指があった場所に残ります。動きがあるたびにこれを正しく更新すると、この問題は自動的に解決すると思います。
これは Draw と Update のスニペットです。どんな助けでも感謝します:
protected override void Update(GameTime gameTime)
{
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
this.Exit();
TouchCollection touchLocations = TouchPanel.GetState();
i = 0;
foreach (TouchLocation touchLocation in touchLocations)
{
if (touchLocation.State == TouchLocationState.Pressed)
{
pos[i] = touchLocation.Position;
}
i++;
}
base.Update(gameTime);
}
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
spriteBatch.Begin();
for (j = 0; j < i; j++)
{
spriteBatch.Draw(whiteRectangle, new Rectangle(((int)pos[j].X - 50), ((int)pos[j].Y - 50), 100, 100), Color.Chocolate);
}
spriteBatch.End();
base.Draw(gameTime);
}