Category:Ru/Interfaces: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
No edit summary
mNo edit summary
Line 1: Line 1:
{{otherlang2
{{lang|Category:Interfaces|title=Категория: Интерфейсы}}
|title=Категория:Интерфейсы
'''[[w:ru:Интерфейс|Интерфейсы]]''' — это C++ классы, к которым другие части движка получают доступ, пока ваш мод запущен.
|en=Category:Interfaces
|de=Category:Interfaces:de
}}
[https://ru.wikipedia.org/wiki/Интерфейс Интерфейсы] - это C++ классы, к которым другие части движка получают доступ, пока ваш мод запущен.
Некоторые объекты интерфейса очень важны и необходимы для функционирования игровых DLL. Чтобы использовать их, наследуйте их для реализации, затем вернитесь к интерфейсу в глобальном [[pointer|указателе]] с предопределенным именем.


{{note:ru|Если вы попытаетесь создать интерфейс напрямую, ваш мод будет крашнут осознанно}}
Некоторые объекты интерфейса очень важны и необходимы для функционирования игровых DLL файлов. Для их использования, наследуйте их для реализации, затем вернитесь к интерфейсу в глобальном [[pointer|указателе]] с предопределённым именем.
{{warning:ru|Важно создать все объекты, перечисленные при предоставлении интерфейса, даже если ваш мод может быть скомпилирован и запущен без одного или другого. Если вы попытаетесь срезать углы, вы, вероятно, столкнетесь со странными, почти невозможными для отладки ошибками нынешних или будущих обновлений движка!}}
{{warning:ru|'''Никогда, никогда''' не изменяйте сам класс интерфейса. Вы всегда должны наследовать, а затем возвратить.}}


== Пример ==
{{note:ru|Если вы попытаетесь создать интерфейс напрямую, ваш мод крашнется. Это происходит намеренно.}}
{{warning:ru|Важно создать все объекты, перечисленные при предоставлении интерфейса, даже если ваш мод может быть скомпилирован и запущен без одного или другого. Если вы попытаетесь убрать что-то, вы, вероятней всего, столкнётесь со странными, почти невозможными для отладки ошибками нынешних или будущих обновлений движка!}}
{{warning:ru|Ни в коем случае не изменяйте сам класс интерфейса. Вы всегда должны наследовать его, а затем возвращать.}}


==Пример==
<source lang=cpp>static CInput g_Input;
<source lang=cpp>static CInput g_Input;
IInput* input = (IInput*)&g_Input;</source>
IInput* input = (IInput*)&g_Input;</source>


Тут создаются объекты <code>[[IInput]]* input</code> и <code>g_Input</code>, которые ждёт движок, помещая за ними базовый код Valve от CInput.
Тут создаются объекты <code>[[IInput]]* input</code> и <code>g_Input</code>, которые ждёт движок, помещая за ними базовый код [[Valve]] от [[CInput]].


Вы можете изменить <code>CInput</code> или создать свой собственный унаследованный класс и использовать его вместо него. Просто помните, что только члены <code>IInput</code> будут доступны движку.
Вы можете изменить <code>CInput</code> или создать свой собственный унаследованный класс и использовать его. Но помните только члены <code>IInput</code> будут доступны движку.


[[Category:Programming:ru]]
[[Category:Programming:ru]]

Revision as of 09:05, 24 November 2022

English (en)Deutsch (de)Русский (ru)Translate (Translate)

Интерфейсы — это C++ классы, к которым другие части движка получают доступ, пока ваш мод запущен.

Некоторые объекты интерфейса очень важны и необходимы для функционирования игровых DLL файлов. Для их использования, наследуйте их для реализации, затем вернитесь к интерфейсу в глобальном указателе с предопределённым именем.

Template:Note:ru Template:Warning:ru Template:Warning:ru

Пример

static CInput g_Input;
IInput* input = (IInput*)&g_Input;

Тут создаются объекты IInput* input и g_Input, которые ждёт движок, помещая за ними базовый код Valve от CInput.

Вы можете изменить CInput или создать свой собственный унаследованный класс и использовать его. Но помните — только члены IInput будут доступны движку.

This category currently contains no pages or media.