![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Вот появилась идея написать небольшую онлайн игру для двух человек))) Скажите пжл мультиплеер можно написать на clientsocket и serversocket))) Игра простейшая - два Shape бегают друг за другом по форме)) Объясните пжл как примерно можно сделать обмен данными между двумя программами (Клиент, сервер), чтобы все что происходит на сервере, отображалось у клиента и наоборот.
Пример: игрок на сервере передвинул shape вперед, все его действия отобразились у клиента... Заранее спасибо!! Я не поэт, но я скажу стихами: "Пошли вы нах*(пииии)уй мелкими шажками" ![]() ![]() |
#2
|
||||
|
||||
![]() |
#3
|
|||
|
|||
![]() Что-то я там ничего не понял...
Сервер: Код:
s:=Socket.Receivetext; memo2.Lines.insert(0,s); if copy(s,1,2)='#p' then begin //генерация нового пакета сервера ServerSocket1.Socket.Connections[0].SendText(s); //передача клиенту //обработка принятого пакета end; Клиент: Код:
s:=Socket.Receivetext; if copy(s,1,2)='#p' then begin //генерация пакета от клиент ClientSocket1.Socket.SendText(s); //передача серваку //обработка принятого пакета от сервака end; что за переменная s?? Можете объяснить, а то не понятно мне... Заранее спасибо... Я не поэт, но я скажу стихами: "Пошли вы нах*(пииии)уй мелкими шажками" ![]() ![]() |
#4
|
||||
|
||||
![]() читай с конца, там поймешь..
В общем нужно передавать структурированные данные. Сервер эти данные принимает, а потом тиражирует по клиентам. клиенты принимают и отрисовывают |
#5
|
|||
|
|||
![]() Цитата:
Ты не мог бы выкинуть исходник клиента и сервера или свои танчики))) А то я не понимаю))) Я занимаюсь программированием всего месяца 3)) 2300 пакетов в секунду передавать это уж слишком))) Вот навсякий передвижения Shape/// Код:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin DoubleBuffered := True; // двойная буфферизация, чтобы не моргали компоненты на форме if Key = VK_RIGHT then Shape1.Left := Shape1.Left + 1; // перемещаем вправо if Key = VK_LEFT then Shape1.Left := Shape1.Left - 1; // перемещаем влево if Key = VK_DOWN then Shape1.Top := Shape1.Top + 1; // перемещаем вверх if Key = VK_UP then Shape1.Top := Shape1.Top - 1; // перемещаем вниз end; Напиши пжл код для мультиплеера... А команды нельзя передавать, например когда я двигаю shape вверх создается определенный пакет c командой, он передается клиенту, там расшифровывается и у клиента двигается shape)) это была моя первая идея)) Я не поэт, но я скажу стихами: "Пошли вы нах*(пииии)уй мелкими шажками" ![]() ![]() Последний раз редактировалось link993, 12.05.2011 в 22:04. |
#6
|
||||
|
||||
![]() Цитата:
Танчиков к сожалению уже нет, ибо писал я еще их во времена динозавров Попробуй сначала сам поразбираться, простейшее сделать, например чат, в любой книге по делфи это описывается... если поймешь то, сам допрешь как свое замутить... если будут вопросы задавай не стесняйся. |
#7
|
|||
|
|||
![]() давай я попробую всетаки на командах сделать)) потом если получится дам тебе исходник протестируешь)) И еще такой вопрос, каким снифером отслеживать отправляемые пакеты??
Я не поэт, но я скажу стихами: "Пошли вы нах*(пииии)уй мелкими шажками" ![]() ![]() |
#8
|
||||
|
||||
![]() попробуй с помощью команд! Методом проб и ошибок в конце концов к чему-нибудь придешь. На с счет снифинга не в курсе
Последний раз редактировалось Pilot_Red, 13.05.2011 в 17:09. |