Пятница, 19 Апреля 2024, 04:30

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Вещи в онлайне
Вещи в онлайне
overboltДата: Суббота, 22 Сентября 2012, 20:49 | Сообщение # 1
Overbolt's Project
Сейчас нет на сайте
Всем привет,делаю онлайн игру (на mplay).(Клиент и сервер в одном приложении)
Так вот,как сделать чтобы когда один игрок разрушал чтото,у другого разрушалось тоже.А после разрушения падал дроп,к которому если прикоснуться он пропадет.Как сделать чтобы другой игрок видил как один игрок разрушил обьект и с него выпал дроп,и он подобрал его.
Сори за нубские вопросы,знаю что надо передавать данные серверу и отдовать им игрокам,но не знаю как сделать


Сообщение отредактировал overbolt - Суббота, 22 Сентября 2012, 20:50
MontegДата: Суббота, 22 Сентября 2012, 20:56 | Сообщение # 2
участник
Сейчас нет на сайте
Сервер хранит состояние всех обьектов. Клиент раз в, скажем секунду, обновляет свои данные с сервера.
overboltДата: Суббота, 22 Сентября 2012, 20:58 | Сообщение # 3
Overbolt's Project
Сейчас нет на сайте
Monteg, я знаю,но сервер он как бы не сервер а игрок)сам не понял что написал.

Добавлено (22.09.2012, 20:58)
---------------------------------------------
Monteg, И передаються друг другу только движения игрока

MontegДата: Суббота, 22 Сентября 2012, 21:03 | Сообщение # 4
участник
Сейчас нет на сайте
Quote (overbolt)
я знаю,но сервер он как бы не сервер а игрок)сам не понял что написал.

Пусть клиент будет выполнять работу сервера. Дела это не меняет.
Quote (overbolt)
И передаються друг другу только движения игрока

Передаются не движения, а координаты обьектов.

Что тебе конкретно нужно? Функции отправки запросов?
overboltДата: Суббота, 22 Сентября 2012, 22:06 | Сообщение # 5
Overbolt's Project
Сейчас нет на сайте
Monteg, да нужно посылать игрокам данные о том что игрок чтото разбил и тд

Добавлено (22.09.2012, 21:20)
---------------------------------------------
???поможет кто???????

Добавлено (22.09.2012, 21:37)
---------------------------------------------
Ах да и еще,как передать игроку что он еще и возводит обьект

Добавлено (22.09.2012, 21:45)
---------------------------------------------
UP

Добавлено (22.09.2012, 22:06)
---------------------------------------------
Наарод HELP!

Сообщение отредактировал overbolt - Суббота, 22 Сентября 2012, 21:45
MontegДата: Суббота, 22 Сентября 2012, 22:30 | Сообщение # 6
участник
Сейчас нет на сайте
Ты так и не написал что тебе нужно. Если конкретный код, то ищи примеры с mplay. Я сам не нашел, и понятия не имею почему ты выбрал такую малопопулярную библиотеку для мультиплеера.
overboltДата: Суббота, 22 Сентября 2012, 23:13 | Сообщение # 7
Overbolt's Project
Сейчас нет на сайте
Monteg, без библиотеки делаю.Ну ладно скажу попроще.
На сервере 2 игрока.На сервере есть например летающая монета.1 игрок взял ее и монета пропала.Но у 2 игрока она осталась.Как сделать чтобы эта монета пропала у всех

Добавлено (22.09.2012, 23:13)
---------------------------------------------
UP

MontegДата: Суббота, 22 Сентября 2012, 23:45 | Сообщение # 8
участник
Сейчас нет на сайте
Используй 39dll. Читай туториал. Изучай примеры.
overboltДата: Воскресенье, 23 Сентября 2012, 11:28 | Сообщение # 9
Overbolt's Project
Сейчас нет на сайте
Ну я делаю без 39 DLL,и мне нужен код

Добавлено (23.09.2012, 11:28)
---------------------------------------------
UP

LunarPixelДата: Воскресенье, 23 Сентября 2012, 11:35 | Сообщение # 10
старожил
Сейчас нет на сайте
overbolt, кхм... ты координаты игроков друг другу как-то передаешь!? В чем проблема передать другие параметры?! smile
Или все на готовых исходниках делается, в которых лень разбираться? smile


overboltДата: Понедельник, 24 Сентября 2012, 15:28 | Сообщение # 11
Overbolt's Project
Сейчас нет на сайте
LunarPixel, так координаты передаються в специальных параметрах,и переменных.А разбивание каждого обьекта я передать тем же путем не смогу
LunarPixelДата: Понедельник, 24 Сентября 2012, 17:59 | Сообщение # 12
старожил
Сейчас нет на сайте
overbolt, можно передать информацию о выстреле. Например клиент стреляет, на сервер передается информация о том, что клиент выстрелил. На сервере болванчик клиента так же стреляет, в том же направлении. Следовательно, если клиент выстрелил направо и попал в ящик, то и на стороне клиента пуля вылетит на права и попадет в тот же ящик. smile

overboltДата: Понедельник, 24 Сентября 2012, 19:57 | Сообщение # 13
Overbolt's Project
Сейчас нет на сайте
LunarPixel, это то понятно,а как это все кодом будет выглядеть?

Добавлено (24.09.2012, 19:57)
---------------------------------------------
UP

LunarPixelДата: Понедельник, 24 Сентября 2012, 20:07 | Сообщение # 14
старожил
Сейчас нет на сайте
overbolt, при выстреле shot = 1, это значение передается второму игроку. Второй игрок считывает значение и если оно = 1, то на его стороне болванчик первого игрока стреляет. Аналогично передается направление выстрела. Если ты сам делал передвижение, то это никаких трудностей не должно вызвать. И хватит апать тему. smile

ilgamerДата: Среда, 26 Сентября 2012, 09:05 | Сообщение # 15
Needle Games
Сейчас нет на сайте
overbolt, смотри, твой мир синхронизируется для обоих игроков. И оба в нем равноправны (Я к тому что не важно, сервер игрок или клиент). При разрушении блока, мы убираем его в массиве объектов и оба клиента видят новый, обновившийся мир без этого блока. Привяжи объекты к сетке и будет тебе счастье. Ну или массив всех объектов создай.

Добавлено (26.09.2012, 09:05)
---------------------------------------------
Пример:
Забиваем массив мира блоками, где 1,0,2,3, да хоть 23 - персональный номер блока/объекта.

Code
int worldArray[100][100]={1,0,2,3,1,0,0,0 и т.д.};


Затем создаешь объект worldLogic, допустим и забиваешь код в отрисовку (Draw):
Code
//Получаешь массив мира (я хз как ты это на mplay делаешь)
//А затем отрисовываем мир:
for(raw=0; raw<100; raw+=1)
{
  for(line=0; line<100; line+=1)
  {
   switch(worldArray[raw][line])
   {
    case 0: sprite_draw(sprite_0,raw*64,line*64); break; //Если на карте в этой клетке блок 0, то рисуем спрайт
    case 32: sprite_draw(sprite_32,raw*64,line*64); break; //64 - ширина/высота каждой клетки на карте
   }
  }
}


А еще лучше не рисовать, а в Step положить и создавать объекты:
Code
for(raw=0; raw<100; raw+=1)
{
  for(line=0; line<100; line+=1)
  {
   switch(worldArray[raw][line])
   {
    case 0: instance_create(Object0,raw*64,line*64); break;
    case 32: instance_create(Object32,raw*64,line*64); break;
   }
  }
}


Если что-то осталось непонятно, спрашивай.


overboltДата: Среда, 26 Сентября 2012, 21:08 | Сообщение # 16
Overbolt's Project
Сейчас нет на сайте
ilgamer, спс тебе большое,это с 39 dll работает?
и откуда знаешь что блок?я этого не писал вроде
ilgamerДата: Среда, 26 Сентября 2012, 21:42 | Сообщение # 17
Needle Games
Сейчас нет на сайте
Quote
и откуда знаешь что блок?я этого не писал вроде

Нетрудно догадаться что у тебя будет, если оба персонажа возводят и уничтожают блоки. Да еще и в онлайне. smile
P.S.
Плюс, аватарка выдает твои предпочтения.

Quote
это с 39 dll работает?

Думаю что проще будет освоить mplay. Он это наверняка потянет. Передача аргументов, наверно, какая-то существует, или вроде того.
А 39dll это потянет явно, но работать с ней немного сложнее.




Сообщение отредактировал ilgamer - Среда, 26 Сентября 2012, 21:46
overboltДата: Четверг, 27 Сентября 2012, 10:44 | Сообщение # 18
Overbolt's Project
Сейчас нет на сайте
ilgamer, спс большое у меня начинает получаться)

Quote (ilgamer)
Нетрудно догадаться что у тебя будет, если оба персонажа возводят и уничтожают блоки. Да еще и в онлайне.
P.S.
Плюс, аватарка выдает твои предпочтения.

Догадливый че)
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Вещи в онлайне
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг