@Dianka05
Всегда на позитиве :Р

Как расчитать, чтобы прямоугольник при повороте смотрель есть ли там, что-то (места) чтобы развернуться?

У меня есть проект с мебелью(в виде прямоугольников) я их делаю (потом считаю колизию при создании) но вот когда я поворачиваю их у меня они наслаиваются так как не получается посмотреть что зайнято ли там.

Как правильно раситать, чтобы во время поворота мебели(прямоугольника) она смотрела на колизиию( тоесть есть ли там что-то.


Код колизии

private bool ColliderChecker(Rectangle obj1)
        {
            bool isEmpty = true;
            foreach (var x in PokojCanvas.Children.OfType<Rectangle>())
            {
                if ((string)x.Tag == "Mebel")
                {
                    x.Stroke = Brushes.Black;

                    Rect currentHitBox = new Rect(mebels.PosX, mebels.PosY, obj1.Width, obj1.Height);
                    Rect mebelHitBox = new Rect(Canvas.GetLeft(x), Canvas.GetTop(x), x.Width, x.Height);

                    if (currentHitBox.IntersectsWith(mebelHitBox))
                    {
                        isEmpty = false;

                    }
                    else
                    {
                        isEmpty = true;
                    }

                }
            }
            return isEmpty;
        }


Когда я использую это в качестве проверки для уже существующей мебели то кнопка вообще не дает повернуть даже если пусто.

Код кнопки поворота

private void Rotate_Button_Click(object sender, RoutedEventArgs e)
        {
            for (int i = 0; i < mebels.IsObjCreate; i++)
            {
                if (PokojListManager.SelectedIndex == nabytek[i].ID)
                {
                    double wdth = rectangle[i].Width;
                    double hght = rectangle[i].Height;
                    rectangle[i].Width = hght;
                    rectangle[i].Height = wdth;
                    break;
                }
            }
        }


Тут как оно выглядит:
6266f634456b3220524482.jpeg
  • Вопрос задан
  • 46 просмотров
Решения вопроса 1
senku1435
@senku1435
py aiogram develop, c# mid
Ну if collidercheck не равно 0 то продолжаем, ,else return
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы