На этом уроке мы начнём реализовывать идею перемещения спрайтов. Начнём, как обычно, с простого. Научимся перемещать один кружок.
Дата отправки отчёта:
16 мая 2017 г.
Задание выполнено: за
15 мин.
Чему научился:
Приплюсовывать смещение к координатам.
Что было сложным:
Понимание 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% показывало.
Молодец, в этом и сила данного проекта, что упор на практику и эксперименты для наглядности. Но никто не мешает проводить дополнительные эксперименты если есть какие либо сомнения, предоставляя свою версию на скриншотах и/или видео.
Научился: Все понятно: создаем точку и окружность в Demo и там же перемещаем её на 100.100. Потом, по нажатию кнопки при вызове Move меняем значение position и отрисовываем окружность с прибавленной position. Трудности: Ничего, но туго до меня доходит связь между классом shape и классами фигур. Постоянно ищу методы или поля в одних классах и обнаруживаю их в классах-предках.