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

Формула программиста
основатель — Волосатов Евгений Витольдович
1-2-3 мая - Создай online игру!

Теория ООП / Интерфейс. Кружок готов к игре!

  • На этом уроке мы допишем методы Игрока в классе Circle.
    Реализуем метод Беги() и Поймал(), и даже исправим
    недочёты в описании интерфейса (!!).
    В конце урока я ответил на многочисленные вопросы участников.
  • Дата отправки отчёта: 25 ноября 2015 г.
  • Задание выполнено: за 40 мин.
  • Чему научился: Узнал как при помощи методов GetType() и typeof() сравнить два объекта.
  • Что было сложным: ---
  • Комментарии: Мне всё ещё не понятно на какой объект указывает слово this в строчке  "return Cross(this, (Circle)obj);"
  • Оценка видео-уроку:
Отчёт от 5265 за Теория ООП / Интерфейс. Кружок готов к игре!




Оцени работу

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

1901. Neverwinter 2
Neverwinter 2
ответить
→  Дмитрий Мерцалов  # Теория ООП / Интерфейс. Кружок готов к игре! / 2015-11-25 16:25

Отвечаю. Слово this, если после него ничего нет (а сейчас именно такая ситуация, ведь дальше запятая и следующий член) указывает на текущий объект текущего класса. А вот если после зис что то есть, то на то что есть, на то и указывает.



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




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Вычислять соприкосновения спрайтов.
Трудности: Понять весь этот матан.
Ну как я и написал в прошлом каменте - надо сравнивать 2 координаты фигур. Правда у меня как всегда в голове только расплывчатый образ был, без конкретной реализации. Вот сколько я в школу ходил и были там уроки геометрии и нигде никто не давал таких вот знаний, чтобы потом на практике применить. Вот про закон пифагора я знаю и что толку с этого? return Convert.ToInt16(Math.Sqrt(p.X - q.X) * (p.X - q.X) + (p.Y - q.Y) * (p.Y - q.Y)); Я бы такое под дулом автомата не придумал. Сто раз проверил все эти буквы, чтобы опечатки даже не сделать. А уж чтобы придумать... Как оказалось - границы фигуры вычисляются из центра. И это только для круга. А как для квадрата? А для треугольника? На старых приставках я замечал, что спрайт физически всегда является квадратом, даже если некоторые пиксели у него прозрачные. Кстати надо было graphics делать пнг формата с альфаканалом, чтобы белый фон фигуры не был виден. Так вот, походу всегда будут вычисляться координаты квадратных границ фигур, что внесет визуальные пиксельные погрешности, которые иногда видны на слабых системах при перерисовке спрайтов. Думаю это будет заметно и тут, когда фигур на арене будет много.
Научился: Поэкспериментировал с выводом класса Circle на экран. Попробовал FillEllipse, различные Brush. Оставил вывод через DrawEllipse, мне показались более симпатичными. От себя добавил, что если Circle Голя, то у него толщина окружности в три раза больше, чем у остальных, это помогло в наглядности тестирования.
Трудности: В 4 пункте было указано, что нужно описать словами что нужно сделать. Я малость не удержался, и реализовал в коде, правда достаточно долгое время, около 10 минут не понимал, почему у меня круги двигаются, но не Голятся. Оказалось, что в функции SetNewLeader() мы выходили из функции, если Лидер был НЕ null. Исправил как надо - заработало) Ошибка была глупой:D Надо быть внимательнее.
Решил записать видео демонстрацию, без звука. В конце видео выделил мышкой добавленный код, а в самом конце - проблемный участок, надо которым сидел 10 минут)