Программирование графического интерфейса, подобного Steam?

#python #user-interface

#python #пользовательский интерфейс

Вопрос:

Итак, я поработал с несколькими разными графическими интерфейсами, но я не смог даже найти момент, чтобы начать исследовать этот вопрос:

Как мне создать графический интерфейс, подобный Steam (приложение для цифровой дистрибуции)? Более конкретно, мне интересно, как им удается заставить всплывающее меню SHIFT TAB появляться в игре, не прерывая / приостанавливая / не влияя на игру. Мне удалось добиться некоторого успеха в создании окна графического интерфейса «оставайся сверху», когда игра находится в оконном режиме, но Steam выводит это маленькое меню поверх запущенной полноэкранной игры.

Это то, о чем мне интересно узнать. Любая информация была бы высоко оценена. 🙂

Извините, если это неподходящее место для публикации этого. Я не был уверен, где именно спросить.

PS> Желательно что-нибудь, что я мог бы реализовать на Python!!!

Ответ №1:

Насколько я понимаю, система наложения / уведомлений Steam подключается к играм через Direct3D или OpenGL в Windows (в зависимости от игры) (поскольку это не работает для игр, которые не являются Direct3d / OpenGL, таких как Diablo).

Он использует те же библиотеки рендеринга, что и игра, и, таким образом, может накладывать их меню изначально.

Что касается реализаций Python, вы можете проверитьhttp://directpython.sourceforge.net / и http://pyopengl.sourceforge.net / для начала (для библиотек DirectX и OpenGL соответственно), но могу ли я предупредить вас, что я не думаю, что это так просто, как вы надеетесь.

Ответ №2:

Хм, это очень похоже на то, что они используют Adobe AIR или, может быть, Flash.

Комментарии:

1. Они, безусловно, не являются. Flash и близко не имеет возможностей делать то, что делает Steam. Быстрый поиск в Google также покажет, что steam написан на C .

2. Спасибо за разъяснение. С этого момента я буду гораздо осторожнее со своими «ответами».

3. Это нормально, я и этому научился на собственном горьком опыте, но это делает вас лучшим ответчиком!