Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Графика -> Гончаров Д. -> "DirectX 7.0 Для программистов" -> 168

DirectX 7.0 Для программистов - Гончаров Д.

Гончаров Д., Салихо Т. DirectX 7.0 Для программистов — Спб.: Питер, 2001. — 528 c.
ISBN 5-318-00173-4
Скачать (прямая ссылка): dirext7dlyaprogrammistov2001.djvu
Предыдущая << 1 .. 162 163 164 165 166 167 < 168 > 169 170 171 172 173 174 .. 229 >> Следующая

Параметр lpData является указателем на буфер, содержащий данные о группе. Если данные отсутствуют, параметр устанавливается в NULL. Данные группы доступны любому игроку текущего сеанса.
Параметр dwDataSize задает размер создаваемого буфера.
В параметре dwFi ags передаются флаги, описывающие параметры группы. На данный момент существуют два флага. Значение DPGROUP_HIDDEN указывает на то, что группа является скрытой для перечисления. Флаг DPGROUP_STAINGAREA служит для указания, что группа является игровой зоной. Игровые зоны существуют при использовании лобби и необходимы для того, чтобы игроки, входящие в них, могли открыть новый сеанс.
При создании группы все игроки сеанса получают системное сообщение DPMSG_ CREATEPLAYERORGROUP.
Все группы существуют до тех пор, пока их не удалят или пока не прекратится сеанс. Любой компьютер в сеансе может удалить любую группу — созданную как локально, так и на другом компьютере. При уничтожении группы нет надобности удалять ее членов, так как всем им будет разослано системное сообщение с уведомлением об их выходе из группы.
Для удаление группы используется функция IDi rectPl ау4: :DestroyGroup().
HRESULT DestroyGroup(
DPID idGroup:
);
Параметр idGroup является идентификационным номером группы, которая будет удалена.
Уничтожение группы не приводит к удалению игроков, входящих в нее. Все они продолжают существовать, но перестают быть членами группы, о чем они извещаются системным сообщением DPMSGDELETEPLAYERFROMFROUP. Информация об уда-
Управление группами игроков
387
лении группы также рассылается всем игрокам сеанса системным сообщением DPMSGDESTROYPLAYERORGROUP.
Создание и удаление подгруппы
Любая группа может содержать в себе сколько угодно подгрупп. Все действия, которые производятся с главной группой, влияют и на подгруппы, входящие в нее. Существуют два метода создания подгруппы. Первый заключается в создании подгруппы главной группой при помощи функции IDi rectPl ау4: :CreateGroup InGroupO. Второй метод состоит в присоединении к главной группе уже существующей группы при помощи функции IDi rectPl ау4: :AddGroupToGroup().
Функция CreateGroupInGroupO, прототип которой приведен ниже, создает подгруппу, полностью зависимую от главной группы. При уничтожении главной группы уничтожается и подгруппа.
HRESULT CreateGroupInGroupC DPID idParentGroup.
LPDPID lpidGroup,
LPDPNAME lpGroupName.
LPVOID lpData.
DWORD dwDataSize,
DWORD dwFlags
):
Параметр idParentGroup является идентификационным номером главной группы.
Параметр lpidGroup является указателем на переменную, в которую будет помещен идентификационный номер создаваемой подгруппы. Номер генерируется средствами DirectPlay.
Параметр lpGroupName является указателем на структуру DPNAME, которая хранит имя создаваемой группы. Если создается группа без имени, в этом параметре передается NULL. Данное имя не обязательно, так как не используется механизмами DirectPlay.
Параметр lpData является указателем на буфер, содержащий данные о группе. Если данные отсутствуют, параметр устанавливается в NULL. Данные о группе являются доступными любому игроку текущего сеанса.
Параметр dwDataSize задает размер создаваемого буфера.
В параметре dwFl ags передаются флаги, описывающие параметры группы. На данный момент существуют два флага. Значение DPGROUP_HIDDEN указывает на то, что группа является скрытой для перечисления. Флаг DPGROUP_STAINGAREA сообщает, что группа является игровой зоной.
Вызов функции CreateGroupInGroup приводит к широковещательной рассылке системного сообщения DPMSG_CREATEPLAYERORGROUP всем игрокам сеанса.
Присоединение уже существующей группы дает ей больше независимости. В этом случае к главной группе присоединяется не сама группа, а ссылка на нее. При удалении главной группы присоединенная группа не удаляется, а становится свободной.
HRESULT AddGroupToGroupC DPID idParentGroup,
DPID idGroup
):
388
Урок 12 • Сетевые подключения
Параметр idParentGroup является идентификатором группы, к которой происходит присоединение.
Параметр idGroup задает идентификатор группы, которую присоединяют.
Вызов функции AddGroupToGroup приводит к широковещательной рассылке системного сообщения DPMSG_ADDGROUPTOGROUP всем игрокам сеанса.
Если надобность в существовании подгруппы отпадает, ее можно удалить. Подгруппы, созданные главной группой, удаляются при помощи уже описанной функции DestroyGroupO. При этом подгруппа перестает существовать.
Удаление присоединенной подгруппы не уничтожает ее, а делает независимой от главной группы. Освобожденная подгруппа сама становится главной группой. Удаление подгрупп, присоединенных к главной группе, осуществляется при помощи функции IDi rectPl ау4: :DeleteGroupFromGroup():
HRESULT DeleteGroupFromGroupC DPID idParentGroup;
DPIP idGroup
);
Параметр idParentGroup является идентификационным номером главной группы, от которой производится отсоединение подгруппы.
Параметр idGroup задает идентификационный номер подгруппы, которая подлежит отсоединению.
При удалении присоединенной подгруппы всем игрокам сеанса рассылается системное сообщение DPMSGDELETEGROUPFROMGROUP.
Предыдущая << 1 .. 162 163 164 165 166 167 < 168 > 169 170 171 172 173 174 .. 229 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.