Comments 18
Отличное начало) Хотя и не соглашусь в плане того, что pygame для игр( у меня python ассоциируется в последнее время только с машинным обучением. Но сколько людей, столько и мнений.
Если знаешь, что делаешь, то и на pygame можно сделать адекватное.
Пример https://www.youtube.com/watch?v=JugaoeDyKB4, очень круто человек делает)
Безусловно, качественные современные игры следует создавать на движках. Создание игр на python это больше челендж и практика навыков, но опять же есть разработчик DaFluffyPotato (есть на YouTube), который делает инди игры для стима на питоне и проблем не испытывает. Я к примеру сейчас делаю браузерную онлайн игру и да бы перенести её на дэсктоп / телефон мне проще написать её на pygame, чем изучать C# / C++ (Движки мне не подходят по тех причинам). И отмечу, что в pygame можно работать с OpenGl, а значит использовать шейдеры. С pygame и с ускорялками по типу Numba работает Standalone Coder (Ютубер).
"И по большей части эта статья нацелена на начинающих программистов, которые уже имеют представление о библиотеке и хотят рыть дальше"
после написания приложения на tkinter и многократных улучшений для него сталкивался с основной проблемой того, что поддержкой основным либ давно никто не занимается.
pyQt давно перехватил инициативу и большую часть контрибутеров
поэтому для новичка рекомендовал бы все-таки изучать pyQt, а не tkinter
У tkinter есть одно важное преимущество -- он точно есть везде, где есть python.
Но убожество мегагалактическое в текущем виде, это да. И проблема не в том, что оно плохо работает, а в том, что production код писать на нём сложно
Не совсем он есть везде. В windows да, он идёт "из коробки", в linux tkinted нужно ставить дополнительно.
Ну ещё бы назвал плюсом - маленький размер сборки через pyinstaller.
Хехе, честно, причина по которой я обычно использую tkinter - я не могу установить нужные инструменты на свою машину.
Берём Delphi) Создаем проект Multi-Device Application. У формы вставляем Transparency = True, кладём на форму Viewport3D, задаем ему цвет фона - Null. А теперь помещаем в 3D дизайнер объекты, меши и прочее) Готово. 3D "игра" на рабочем столе)
Примерно так (https://youtu.be/U802Uik8IzM) простите за мат)
P.S. у окон можно задать рамку без управляющих кнопок
<зануда_mode>
Нарушен SRP. Да, управление формой через класс -- это вин, с самого начала статьи ожидал этого. Наличие Button в этом классе -- это фейл.
Рекомендую глянуть на React и их подход -- есть базовые компоненты и есть их композиция в компонентах верхнего уровне, у вышестоящих компонентов своя композиция, и так далее. Ну да, без JSX будет не так удобно UI верстать, но почему бы и да?
</зануда_mode>
С учётом развития webasembly и портирования туда python ваши наработки могут лечь в основу питонячьей версии ноды, которая заявляется работающей во всех дырах. Лишь бы был удобный API и работало быстро. Дерзайте
Можно упороться в EBNF и запилить свой JSX, только с
from __future__ import braces
PS: Ну да, есть и такой изврат
И даже что-то похожее есть: https://pypi.org/project/pyreact2/
Но там всё равно о генерации HTML и конкатенации строк
Ничего не понял, но очень интересно. Я не до конца понял в чём конкретно проблема класса моего окна, если здесь можно было сделать что-то более универсальное, практичное, то как я и сказал в начале статьи "Это по большей части статья для новичков". Я вообще сомневался, стоит ли сюда выкладывать класс окна, так как я сам долго разбирался и упрощал его (модуль с этим окном я написал пол года назад). И под конец напомню о самом главном правиле программиста - " РАБОТАЕТ ? НЕ ТРОГАЙ !"
Tkinter, раскрытие потенциала. + Игра на рабочем столе