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

Формула программиста
основатель — Волосатов Евгений Витольдович

Материалы мастер класса "Люди на карте"


Вебинар «Мы начинаем PHP + Yii2» начнётся через 9 час. 05 мин.

Теория ООП / Перемещение круга

  • На этом уроке мы начнём реализовывать идею перемещения спрайтов.
    Начнём, как обычно, с простого. Научимся перемещать один кружок.
  • Дата отправки отчёта: 30 апреля 2016 г.
  • Задание выполнено: за 1 час. 15 мин.
  • Чему научился: согласно плана данного урока:
    1. Создaть мeтoд Move() в базовом класcе.
      2. Наpиcoвать кружок в отдeльной фyнкции oсновной программы.
      3. Добaвить кнoпкy для перемещения кpужкa.
      4. Изменить мeтoд Circle.Move() чтoбы кружок перeмещaлcя.
      5. Уяснить oтличия кooрдинат кружка oт коopдинаты position.
      6. Убедитьcя, чтo кpужок перемeщаeтcя при нажатии на кнопочку
  • Что было сложным: Вроде всё понятно. Ничего сложного пока не было.
  • Комментарии: Всё прекрасно объяснено.
  • Оценка видео-уроку:
Отчёт от 6670 за Теория ООП / Перемещение круга




Оцени работу

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

24. Олюшка
Олюшка
ответить
→  Николай  # Теория ООП / Перемещение круга / 2016-04-30 16:59

Николай, очень хорошо уже продвинулся, рада твоим результатам! :)



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




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

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

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

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


Научился:  Приплюсовывать смещение к координатам.
Трудности: Понимание private void Demo() { A = new Pixel(0, 0); circle = new Circle(A, 20); circle.SetGraphics(graph); circle.Move(new Pixel(100, 100)); circle.Draw(); picture.Image = bmp; }
Так и не понял, почему надо указывать 0,0. Это нелогично. Получается, что центр круга как бы сначала на 0.0, потом создается этот круг, но он еще не отрисован на холсте. Потом вызывается move с новыми координатами. Потом оно отрисовывается в памяти и только потом весь буфер с картинкой отображается на холсте. С моей точки зрения логичней было бы в методе move задавать не новые координаты, а смещение относительно текущих. Ну это как абсолютное и относительное значение. Но это чисто я так думаю. У каждого мозги по-разному работают. А еще я думал, что надо действительно к координатам каждой точки прибавлять смещение position, поэтому я в одном из прошлых каментов и писал, что это привело бы к сильному замедлению отрисовки. А оказывается, что проще и правильней просто в каждом классе примитива один раз прибавить это смещение. Вот за это мне и нравится этот курс, т.к. постепенно видно почему сделано так, а не этак. Я бы вот ни за что не догадался, как это все вот так красиво сделать. В голове вроде есть какое-то представление, а оказывается, что все делается куда проще и правильней. В других курсах просто преподносят что-то как факт. Типа делай так, потому что так надо. Поэтому я другие курсы смотрел и не досмотрел, а уж о практике и речи не было. А тут вон глаз закрывается уже, а решил добить этот урок, чтобы уже 50% показывало.


Научился: Применил virtual. (проверил его работу)
Считаю, что удобнее инициализировать position=startPosition в конструкторе, а далее в методу move изменять только position и при рисовании перемещать фигуру на (position). Таким образом мы имеем базовую точку не привязанную к нулю, а в привязанную к фигуре. PS у снеговика position считал как среднее значение координат все фигур спрайта.(на фото отмечена окружностью с R=1 ) Спасибо.