Курсы по программированию

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Теория ООП / Интерфейс. VIP. Пересечение прямоугольников.

  • На этом уроке мы допишем метод Box.Поймал()
    и запустим игру с квадратиками.
    Потом попробуем подружить квадратики с кружками,
    увидим, что это не так просто, да собственно и не нужно.
    Но возможно.
  • Дата отправки отчёта: 23 мая 2017 г.
  • Задание выполнено: за 30 мин.
  • Чему научился: Очередной алгоритм пересечения прямоугольников. Кто бы мог подумать, что это так делает.
  • Что было сложным: Искать ошибки.
  • Комментарии: Забыл для прямоугольников наследование от интерфейса в прошлом уроке. В этом нашел.
    Потом он стал ругаться, что методы Поймал аргументы не те. Стал пересматривать урок и нашел, что в определении интерфейса поменяли object на игрок, а я это пропустил. Тут еще посылку принесли и отвлекли. Потом я еще с этой посылкой возился.

    Потом игра запустилась, но квадратики немного туда сюда телепались. Долго искал и нашел.
                if (x < 0 || x > Arena.Range.Width - box.Width) sx = -sx;
                if (y < 0 || y > Arena.Range.Height - box.Height) sy = -sy;
    Вместо у во второй строчке были х. Копипаста - враг программиста! (с) мое

    По логике вещей - надо было сделать так:
    Круг ведущий - красный. Остальные синие.
    Прямоугольник ведущий - желтый. Остальные зеленые. (брать противоположные цвета)
    Проверять я это конечно не буду.

    Хоть они и пересекаются, но взаимодействовать между собой могут только фигуры одного типа. Получается такая параллельная реальность. Б-г создал один мир и населил его двумя тварями. Хоть они там и копошаться, но друг друга как бы не видят.
  • Оценка видео-уроку:
Отчёт от 10588 за Теория ООП / Интерфейс. VIP. Пересечение прямоугольников.




Оцени работу

 
Сохранить страницу:

1947. --
Denis
Denis
ответить
→  kalobyte  # Теория ООП / Интерфейс. VIP. Пересечение прямоугольников. / 2017-05-23 20:43

Можно считать, что одни над другими. Одни на земле, другие на небе =) Было бы 3Д, было бы понятнее =)


1. --
Евгений Волосатов
Евгений Волосатов
ответить


Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: Реализовал пересечение прямоугольников ещё на прошлом уроке. Реализовал функцию Show(IGamer g) через свитч. Всё отлично, идём дальше. з.ы. по поводу интерфейса, это не его суть, чтобы игроки были одинаковые, они и так одинаковые, так как у них всех единый интерфейс. По поводу же реализации пересечения разных объетов, это немного другая задача. просто она сложнее, чем проверка одинаковых объектов. Поглядим реализацию в след. уроке.



Научился: определение столкновения боксиков реализовано через сравнение их величин Right, Left, Top, Bottom. Боксики с шариками живут в разных вселенных и отсюда их параллельное броуновское движение.