Я работаю над игрой для Windows Phone и испытываю трудности с движением спрайтов.То, что я хочу сделать, это заставить спрайт постепенно перемещаться в положение, которого касаются на экране, когда есть только одно быстрое касание и отпускание.В ту минуту все, что я могу сделать, - это сделать мгновенный переход спрайта к месту прикосновения или перейти к месту прикосновения, когда прикосновение удерживается.
Код для перехода к месту прикосновения:
TouchCollection touchCollection = TouchPanel.GetState();
foreach (TouchLocation tl in touchCollection)
{
if ((tl.State == TouchLocationState.Pressed)
|| (tl.State == TouchLocationState.Moved))
{
Vector2 newPos = new Vector2(tl.Position.X,tl.Position.Y);
if (position != newPos)
{
while (position.X < newPos.X)
{
position.X += (float)theGameTime.ElapsedGameTime.Milliseconds / 10.0f * spriteDirectionRight;
}
}
}
}
Код для постепенного перемещения при удержании касания:
TouchCollection touchCollection = TouchPanel.GetState();
foreach (TouchLocation tl in touchCollection)
{
if ((tl.State == TouchLocationState.Pressed)
|| (tl.State == TouchLocationState.Moved))
{
Vector2 newPos = new Vector2(tl.Position.X,tl.Position.Y);
if (position != newPos)
{
position.X += (float)theGameTime.ElapsedGameTime.Milliseconds / 10.0f * spriteDirectionRight;
}
}
}
Это метод Update () класса Sprite.