Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2011, 16:28   #1
Toland2
 
Регистрация: 10.10.2011
Сообщений: 7
По умолчанию Сетевая игра

Всем привет!
Помогите пожалуйста разобраться с одной проблемой.
Я задумал сделать очень простую сетевую игру танчики.

В клиенте создается TImage с изображением танка (Tank:array [1..10] of TImage; ),
его номер отправляется на сервер и рассылается всем подключенным клиентам.
И на тех клиентах создаются TImage с таким же номером.

В клиенте передвигаю TImage по форме, её кординаты передаются на сервер и рассылаются
всем подключенным клиентам.
У меня есть вот такая структура, которую я передаю через сокеты:
Код:
Код:
   type
    PlayerPosition = packed record
      PosX:integer; //Положение по X
      PosY:integer; //Положение по Y
      id:integer;   //id танка
  end;
Сначала эта структура попадает на сервер и он рассылает её всем клиентам вот таким образом:
Код:
Код:
procedure TForm1.SendPosTank;
var 
i: integer;
Pos:PlayerPosition;
begin
  for i := 0 to ServerSocket1.Socket.ActiveThreads - 1 do
    begin
      ServerSocket1.Socket.Connections[i].SendBuf(Pos,SizeOf(Pos));
    end;
end;
Дело в том, что TServerSocket находится в режиме stThreadBlocking и такой способ является неправильным,
так как каждый поток должен заниматься отправкой данных только своему клиенту.

Подскажите пожалуйста как можно реализовать данную задумку?
Заранее большое спасибо.
Toland2 вне форума Ответить с цитированием
Старый 18.11.2011, 00:23   #2
Toland2
 
Регистрация: 10.10.2011
Сообщений: 7
По умолчанию

неужели никто не знает?(
Toland2 вне форума Ответить с цитированием
Старый 18.11.2011, 12:27   #3
invizor
Пользователь
 
Аватар для invizor
 
Регистрация: 15.11.2010
Сообщений: 53
По умолчанию

Лично я использовал бы использовал просто winsock для сетевой игры. Еще точнее пример из книги Григорьева "о чем не пишут в книгах по delphi" про многонитевой сервер, multithreadserver.dpr в папках с исходниками к нему. http://narod.ru/disk/4367549001/delphigrigorev.rar.html
Клиент обычный тоже из исходников книги.Можно таймер добавить еще в клиент, по которому он будет проверять наличие новых сообщений
Герои меча и магии собственного производства http://invizor007.000webhostapp.com/...1/hi_v1_3a.rar
Личный сайт http://invizor007.000webhostapp.com/
invizor вне форума Ответить с цитированием
Старый 18.11.2011, 18:51   #4
Toland2
 
Регистрация: 10.10.2011
Сообщений: 7
По умолчанию

invizor, спасибо большое. Очень полезная книга!
Toland2 вне форума Ответить с цитированием
Старый 22.11.2011, 12:48   #5
cyborghome
Новичок
Джуниор
 
Регистрация: 22.11.2011
Сообщений: 1
По умолчанию

Посмотри мою библиотеку http://pascalgames.net/index.php?topic=315.0
Она с исходниками.
cyborghome вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сетевая Ckawest Компьютерное железо 13 12.11.2011 17:12
Сетевая игра Toland2 Работа с сетью в Delphi 3 09.11.2011 12:52
Сетевая игра IceMage Gamedev - cоздание игр: Unity, OpenGL, DirectX 18 10.12.2009 18:48
Сетевая плата Syltan Компьютерное железо 0 05.12.2009 12:34
сетевая игра cheef Работа с сетью в Delphi 10 14.07.2009 21:21