[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Сообщения.
Сообщения.
АДМИНДата: Вторник, 2012/Мар/13, 16:28 | Сообщение # 1
Группа: Администрация
Сообщений: 62
Награды: 6
Репутация: 9
Статус: Offline
Второй коммуникационный механизм который поддерживает Game Maker - это посылка и приём сообщений. Игрок может посылать сообщения одному или всем игрокам. Игроки могут видеть - прибыли ли сообщения и принимать соответствующие меры. Сообщения могут быть отправлены в гарантируемый режим, в котором Вы будете уверены, что они прибыли (но он может оказаться медленным) или в "негарантируемом" режиме, который является более быстрым.

Существуют следующие подпрограммы передачи сообщений:

mplay_message_send(player,id,val) посылает сообщение указанному игроку player (либо на идентификатор, либо на имя; используйте 0, чтобы отправить сообщение всем игрокам). id - целочисленный идентификатор сообщения и val - значение (реальное или строка). Сообщение посылается в "негарантируемом" режиме.
mplay_message_send_guaranteed(player,id,val) посылает сообщение указанному игроку player (либо идентификатор либо имя; используйте 0, чтобы послать сообщение всем игрокам). id - целочисленный идентификатор сообщения и val - значение (реальное или строка). Сообщение посылается в гарантируемом режиме.
mplay_message_receive(player) принимает следующее сообщение из очереди сообщений, исходящих от указанного игрока player (идентификатор или имя). Используйте 0 для сообщений от любого игрока. Подпрограмма возвращает, если действительно имеется новое сообщение. При этом Вы можете использовать следующие подпрограммы, чтобы узнать его содержание:
mplay_message_id() Возвращает идентификатор последнего полученного сообщения.
mplay_message_value() Возвращает значение последнего полученного сообщения.
mplay_message_player() Возвращает игрока, который послал последнее полученное сообщение.
mplay_message_name() Возвращает имя игрока, который послал последнее полученное сообщение.
mplay_message_count(player) возвращает количество сообщений, оставшихся в очереди от игрока player (используйте 0, чтобы сосчитать все сообщения).
mplay_message_clear(player) удаляет все сообщение, оставшиеся в очереди от игрока player (используйте 0, чтобы удалить все сообщения).

Некоторые уточнения вышесказанного. Прежде всего, если Вы хотите послать сообщение только определённому игроку, Вам нужно знать его уникальный идентификатор. Как уже сообщалось ранее, Вы можете получить его, используя функцию mplay_player_id(). Данный идентификатор игрока, используется также при приёме сообщений от определённого игрока. В качестве альтернативы, Вы можете задать имя игроку, как строку. Если многие игроки имеют такое же имя, то сообщение получит только первый.

Во-вторых, Вы могли бы поинтересоваться, почему каждое сообщение имеет целочисленный идентификатор. Причина в том, что он помогает Вашему приложению посылать различные типы сообщений. Получатель может проверять тип сообщения используя идентификатор и принять соответствующие действия. (Поскольку прибытие сообщений не гарантируется, то посылка идентификатора и значения в разных сообщениях могут вызвать серьёзные проблемы).


Создатель сайта!!!!
 
Tremere407Дата: Четверг, 2012/Мар/29, 14:25 | Сообщение # 2
Группа: Администрация
Сообщений: 7
Награды: 0
Репутация: 0
Статус: Offline
Хм. Любопытно, хотя врядли пригодится.

Сначала государство служило народу, теперь народ служит государству.
 
АДМИНДата: Суббота, 2012/Мар/31, 10:29 | Сообщение # 3
Группа: Администрация
Сообщений: 62
Награды: 6
Репутация: 9
Статус: Offline
Quote (Tremere407)
хотя врядли пригодится

biggrin


Создатель сайта!!!!
 
Форум » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Сообщения.
Страница 1 из 11
Поиск: