Как создать графическое приложение?
Хочется узнать основные подходы и приёмы при создании графических приложений. Я попробовал уже FLTK, то есть понимаю что такое виджет. Возьмём к примеру лаунчер игры Мир танков (Lesta Games). Здесь есть всякие разные кнопки, анимация кнопок и загрузки, различные блоки и т.д. Если возьмём ту же библиотеку виджетов FLTK, то можно спокойно накидать макет лаунчера, используя системный стиль виджетов. Как вы понимаете это будет совсем некрасиво. Но зато понято как со всем этим работать. Так вот, собственно вопросы теперь:
- С помощью каких библиотек можно создать такой лаунчер?
- В какой программе удобнее создавать макет приложения со всеми его элементами?
- Допустим мне нужно создать кнопку, при наведении на которую запускается анимация, скажем взрыв, то мне нужно получается создать раскадровку этой анимации, положить её в файл .png, а при наведении на кнопку запускать цикл с нарезкой спрайтов? Или есть другие технологии?
Или просто стоит взять графическую библиотеку, sfml к примеру, или даже OpenGL, и создавать всё там? А логику, скажем открытие браузера для выбора пути установки, писать используя системные вызовы? Так тогда как стилизовать окно которое откроется...
В общем миллион вопросов. Может посоветуете какую-нибудь литературу? Если не получу ответа для выбора отправной точки, то буду смотреть записи стримов, где что-то пытаются лепить, возможно попадусь на нормальное что-то. Просто нужно понять как пишутся подобные программы. Либо используется библиотека виджетов, а затем они как-то стилизуются, либо используется графическая библиотека, а затем логика пишется уже используя системные вызовы.
Если выбрать sfml для работы с окном и получением событий, а отрисовывать всё через OpenGL, то необходимо будет логику того же виджета списка со скроллом писать с 0, но ведь для этого уже есть библиотеки виджетов... Если взять web, то там всё просто: накидал html-шаблон и всё, уже сайтом уже по-сути можно пользоваться; потом прикрутил ко всему этому css и всё стало выглядеть красиво. Здесь же получается нужно прямо чуть ли не каждый кадр виджета обрабатывать (каждый), или я что-то не так понимаю?
Я слишком загоняюсь наверное, всё на самом деле проще, но я об этом просто не знаю.
UPD: Как упаковывают различные картинки и анимации? Ибо в фоматах типа png, jpeg, ни разу не видел чтобы в таком виде хранилась раскадровка анимаций кнопок и т.д.
