• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Как сделать переходы между ближайшими объектами?

Статус
В этой теме нельзя размещать новые ответы.

lomakich

Начинающий
Пользователь
Регистрация
30 Мар 2019
Сообщения
18
Лучшие ответы
0
Репутация
2
Приветствую любитей подумать и выдвинуть свою уникальную идею. Начал делать я систему дорог, пока что условно для тестов сделал 3 уровня (сельская, асфальтированная и асфальтированная городская с широкими тротуарами). Данные дорог хранятся и выгружаются из таблицы (ид дороги, центральная точка, состояние дороги, её уровень, поворот и т.д.). Все прекрасно загружается и работает, скрины ниже. Дороги идеально стыкуются между собой.
СЕЛЬСКАЯ ДОРОГА (УРОВЕНЬ 1)
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!

АСФАЛЬТИРОВАННАЯ ДОРОГА (УРОВЕНЬ 2)
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!

ГОРОДСКАЯ ДОРОГА, ШИРОКИЙ ТРОТУАР (УРОВЕНЬ 3)
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Также реализована костыльная (для тестов визуальной составляющей) система переходов между дорогами разного уровня. Скрины ниже для тех, кому интересно.

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!

ВНИМАНИЕ ВОПРОС!
Так как система создания переходов между дорогами писалась просто для тестов, то и реализована она по принципу: если уровень дороги с road_ID не равен уровню дороги с road_ID+1, то переход создается справа дороги, если не равен с road_ID-1, то слева дороги. И это бы прекрасно работало, если дорога шла в одном направлении и IDшники шли бы последовательно, но дело дошло до перекрестков и разветвлений. И если перекресток имеет ID x, то дороги которые подходят к нему будут иметь IDшники x-1, x+1, x+2, x+3. Ну это так, как реализовано сейчас. Именно поэтому данная система просчета переходов между дорогами невозможна по принципу изложенного мной. Вот и мой вопрос, попрошу изложить ваши идеи как можно сделать. Необязательно прилагать код, достаточно просто описать суть, принцип работы системы по вашей задумке.

p.s.
Свой тестовый код тоже не прикрепляю, так как не вижу смысла. Но вкратце могу описать принцип работы.
PHP:
OnGameModeInit
{
  LoadRoads();
}
stock LoadRoads();
{
  //Цикл for с SELECTом в таблицу и обращение в паблик UpdateRoad с передачей i
}
forward UpdateRoad(road_index);
public UpdateRoad(road_index)
{
  Присвоение значений к массивам серверным, которые касаются дорог
  RemoveRoad(road_index);
}
stock RemoveRoad(road_index)
{
  цикл for содержащий if(IsValidDynamicObject(OBJ)) DestroyDynamicObject(OBJ); для road_index, road_index+1 и road_index-1
  NewRoad(road_index-1);
  NewRoad(road_index);
  NewRoad(road_index+1);
}
stock NewRoad(road_index)
{
  Маппинг дорог, который строится относительно точки отсчета дороги с ID road_index, уровня дороги и других условий
}
Очень нужна ваша помощь, заранее благодарен всем неравнодушным!
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу