Журнал о программированнии на языках Blitz3D, BlitzPlus, BlitzMax

Категория:Сеть GNet ( BRL.GNet ), BlitzMax

Материал из Blitz Et Cetera

Перейти к: навигация, поиск

Модуль GameNet (сокращенно GNet) предоставляет набор команд для создания и управления сетевыми играми.

GNet работает немного иначе, чем другие сетевые библиотеки. Вместо того, чтобы основываться на "базе сообщений", GNet работает по средствам синхронизации коллекций GNet объектов в сети.

Каждый GNet объект содержит 32 слота, которые являются аналогичными по своему характеру с полями (fields) объектов BlitzMax. Вы можете записывать в эти слоты значения, используя команды SetGNetInt, SetGNetFloat и SetGNetString и получать (считывать) значения из слотов используя команды GetGNetInt, GetGNetFloat и GetGNetString. Назначение данных в слотах выбираете вы сами, но обычно они содержат информацию о позиции игрока, его очках, жизни и прочее.

Заметьте, что вы можете изменять только объекты GNet созданные вами. Такие объекты называют локальными, объекты созданные в другом месте (другими клиентами) называются удаленными (от слова "дальний").

В начале использования GNet, вы должны создать GNet-хост с помощью команды CreateGNetHost. Однажды созданный хост вы можете использовать для подключения к другим GNet-хостам пользуясь командой GNetConnect или разрешая подключения от других хостов командой GNetListen.

Команда GNetSync обновляет все GNet объекты. Также она сообщает остальным хостам о любых изменениях локальных объектов и обрабатывает сообщения о любых изменениях удаленных объектов от других хостов.

После команды GNetSync вы можете узнать какие объекты были изменены, созданы или закрыты(уничтожены) используя команду GnetObjects. Она возвращает связанный список объектов в данном состоянии.

GNet поддерживает упрощенную систему сообщений. GNet сообщение фактически является специальным типом GNet объекта, таким образом для создания сообщений вы используете стандартные GNet команды для записи в слоты. Созданное сообщение может быть отправлено удаленному объекту командой SendGNetMessage.

Входящие сообщения можно обработать используя команду GNetMessages после команды GNetSync. Эта функция возвращает связанный список сообщений, который может быть обработан стандартными GNet командами чтения слотов. К тому же, команда GNetMessageObject может быть использована для определения, для каких локальных объектов были предназначены сообщения.

Другие

Друзья