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

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

Игры со Спрайтами / Домино. Rolling Stones

  • На этом уроке мы сделаем анимацию раскладывания всех плашек домино на столе.
    Для этого напишем метод RollDomino(), а ещё нам потребуется отлавливать
    момент, когда все доминошки уже выложены на стол. Для этого мы добавим
    поле string mode, чтобы в таймере отловить этот момент.
  • Дата отправки отчёта: 6 июля
  • Задание выполнено: за 40 мин.
  • Чему научился: Выкладывать пирамиду из домино
  • Что было сложным: Ничего
  • Комментарии: Немного улучшил вашу анимацию. Кстати, я ещё до видео хотел сделать именно такую =)
  • Видеозапись: https://youtu.be/_dTm0OkqYgA
  • Оценка видео-уроку:
Отчёт от 9567 за Игры со Спрайтами / Домино. Rolling Stones




Оцени работу

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

  • Отчёт оценивали:
    4467Alcatraz+1   6452Lik_Kirill+1   10494Алексей В.+1   4004Елена+1   5257Антон+1   7119Новопашин Владимир+1   9263Андрей Н.+1   4395Денис+1   10558Иван Воронин+1   5649Максим Лапшинов+1   9237Mais+1   10670Сергей Соколов0   10233Виталий+1   1Евгений Витольдович+1   791Валерий+1   689Igorenzia+1   1803Саша+1   2639Морозов Юрий Александрович+1   3506Алексей|BrisK|Кривицкий+1   9457Дмитрий+1   9567Максим+1  

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Так как работа анимации привязана к таймеру и не зависит от основного потока управления программы, то научился определять момент завершения анимации, с помощью проверки статуса stopped.
Трудности: Придумать свой вариант анимации, в моем случае четные строки появляются слева, нечетные справа.
В начале урока был разговор об альтернативных вариантах дизайна классов анимаций. На мой взгляд, анимация это некий процесс, действие, которое не привязано к домино. Текущий дизайн не позволяет мне использовать эту иерархию классов для того же самого Аполлона, так как в базовом классе Animate мы явно указали зависимость от SpriteDomino. В качестве возможного решения, можно разделить данные от алгоритмов. Данные - это спрайты. Алгоритмы - это анимации. Данные реализовать в виде иерархии классов Sprite. В классе Sprite добавить поле Animate, которое будет означать текущую анимацию, которую можно потом гибко менять по ситуации. struct Point { int x; int y; } interface Animate { void play(); Point position(); } class AnimateStatic : Animate{} class AnimateMove : Animate{} class AnimateTurn : Animate{} class Sprite { Animate animation; int x, y; public void set_animation(Animate a) { animation = a; } public virtual void Draw() { animation.play(); Point location = animation.position(); x = location.x; y = location.y; } } class SpriteDomino : Sprite {} class SpriteFlower : Sprite {} void test() { Sprite domino = new SpriteDomino(); domino.set_animation(new AnimateMove()); domino.Draw(); domino.set_animation(new AnimateTurn()); domino.Draw(); Sprite flower = new SpriteFlower(); flower.set_animation(new AnimateMove()); flower.Draw(); }
Научился: Повторил ООП, анимация появления домино.
Трудности: выбрать способ анимации.
Все интереснее и интереснее! Спасибо!