Обнаружение столкновения Silverlight, когда элементы управления находятся на разных холстах / слоях - PullRequest
2 голосов
/ 02 января 2011

Для нашей игры мы должны создать обнаружение столкновений. Проблема в том, что сталкивающиеся объекты находятся в разных холстах / слоях, что делает невозможным обнаружение столкновений по точечному размещению.

У кого-нибудь есть идеи, как это решить?

Ответы [ 2 ]

0 голосов
/ 03 января 2011

Могу ли я предложить вам попробовать использовать физический движок Farseer, чтобы избавить себя от боли? http://farseerphysics.codeplex.com/

Это очень хорошо и уже используется в некоторых играх WP7. http://www.farseergames.com/

Также есть некоторые варианты поведения Blend и помощники, которые делают его использование еще проще: http://physicshelper.codeplex.com/

0 голосов
/ 02 января 2011

Трудно дать отличный ответ без какой-либо дополнительной информации, но если все ваши слои имеют одинаковый размер, тогда вы можете просто свернуть свое собственное обнаружение столкновений.Все, что вам нужно знать, это расположение и размеры двух объектов, которые будут обнаружены при столкновении.Затем вы просто проверяете, пересекается ли один прямоугольник с другим.

Существует также функция, которая может быть полезна для использования, называется TranslatePoint.Это переводит координаты одного элемента UIElements в другой.Таким образом, если бы у вас был мяч, подпрыгивающий в меньшей области экрана с его собственной локальной системой координат, вы могли бы получить координаты шара относительно всего экрана с помощью этой функции.

...