Доброго времени суток!
Возник вопрос при разработке почти игрового приложения на Windows Forms.
Суть в следующем: есть визуализатор работы процессов в операционной системе. Есть класс процесса, потока и ресурса. Так же есть классы, отвечающие за анимацию процесса, потока и ресурса, которые инкапсулируют в себе классы с логикой. Если главный класс, контролирующий поведение последних, а так же их взаимодействие с интерфейсом WF: нажатие на иконку бегающего потока спровоцирует выделение этого потока на PaintBox и вывод в ListBox информации о его текущем состоянии, при этом при изменении его состояния, актуальные данные подгружаются в ListBox.
Для реализации игрового цикла использую Timer. Сам игровой цикл пока представляю так:
1)Update()
2)Render()
Главным образом волнует ситуация с выводом анимации: как мне организовать плавную анимацию?
Пока я представляю это так:
1. Обновление вида процесса.
1.1 Обновление вида каждого ресурса.
1.1.1. Если есть незавершённая анимация - перейти к следующему фрейму этой анимации и запомнить текущее состояние анимации.
1.1.2. Если анимация закончена - выстрелить событие.
1.2. Обновление вида каждого потока.
1.2.1. Если есть незавершённая анимация - перейти к следующему фрейму этой анимации и запомнить текущее состояние анимации.
1.2.2. Если анимация закончена - выстрелить событие.
Правильно ли я все делаю? Использовать готовые движки конечно правильней, но стоит ли их учить ради этой задачи? Мне нужна простая анимация и взаимодействие с кликами мыши на PaintBox.
Вот "дизайн"