как сравнить границы прямоугольников wpf элемента xaml - PullRequest
0 голосов
/ 09 мая 2018

Я создаю небольшую платформерную игру и хочу сравнить границы прямоугольника одного игрока со многими элементами прямоугольника, которые являются моими платформами. Я знаю, что в WinForms я могу просто использовать метод PictureBox .bounds.intersectswith().

в моем xaml я определяю свои элементы управления вот так в сетке, называемой программой.

 <Rectangle Name="player" Tag="player"  HorizontalAlignment="Left" Height="61" Stroke="Black" VerticalAlignment="Top" Width="75" Canvas.Top="332" Canvas.Left="25">
            <Rectangle.Fill>
                <ImageBrush ImageSource="player.png"/>
            </Rectangle.Fill>
        </Rectangle>

        <Rectangle Tag="platform"  HorizontalAlignment="Left" Height="82" Stroke="Black" VerticalAlignment="Top" Width="100" Canvas.Top="398">
            <Rectangle.Fill>
                <ImageBrush ImageSource="purplebrick.png"/>
            </Rectangle.Fill>
        </Rectangle>

и затем я хочу сравнить границы игрока с примерно 50 платформами.

 foreach (Rectangle x in LogicalTreeHelper.GetChildren(program))
        {
            if (x is Rectangle && x.Tag.ToString() == "platform")
            { 
                 if(player.intersectswiht(x) // problem area

я использовал этот вопрос Bounds.Intersect для WPF в качестве ссылки, но мне нужно назвать каждый элемент прямоугольника и создать фактическую ссылку, чтобы иметь возможность использовать его пересечение с функцией?

или я должен просто сравнить размеры каждого элемента (canvas.top и т. Д.), Но это даст мне только значение ребер, а не диапазон, если они перекрываются правильно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...