Изображение UWP C # (элемент пользовательского интерфейса) Проблема с обнаружением коллизии

#c# #uwp #2d #collision-detection

#c# #uwp #2d #обнаружение столкновения

Вопрос:

У меня перемещаются 2 изображения (элемент пользовательского интерфейса), пастух и волк. Я хочу, чтобы, если они находятся в одной и той же области каждого из изображений (если они касаются друг друга), что-то произойдет (пастух умрет).

Я новичок, и я думал о цикле for, но это работает только после того, как я изо всех сил пытался умереть … lol…

 private void GameOver(Image enemy, Image actualToMove)
    {
        for (int i = 0; i < 200; i  )
        {

            if (Canvas.GetLeft(actualToMove) == (Canvas.GetLeft(enemy) - i) amp;amp; Canvas.GetTop(actualToMove) == (Canvas.GetTop(enemy) - i)
                || Canvas.GetLeft(actualToMove) == (Canvas.GetLeft(enemy)   i) amp;amp; Canvas.GetTop(actualToMove) == (Canvas.GetTop(enemy)   i))
            {
                gameOver = true;
                break;
            }
        }
    }
  

Я подумал об этом цикле, чтобы захватить овцу, и это работает… но овца статична.
я почти уверен, что цикл for в этой ситуации — действительно плохая идея…

Мне очень сложно выполнить обнаружение коллизий в UWP… Пожалуйста, помогите!

Ответ №1:

Вы могли бы использовать событие манипуляции для перемещения ваших изображений. Например, вы могли бы переместить изображение в ManipulationDelta событии, и в ManipulationCompleted случае вы могли бы выполнить обнаружение столкновения. Вам не нужно было использовать цикл.