- Регистрация
- 30 Мар 2019
- Сообщения
- 18
- Лучшие ответы
- 0
- Репутация
- 2
Приветствую любитей подумать и выдвинуть свою уникальную идею. Начал делать я систему дорог, пока что условно для тестов сделал 3 уровня (сельская, асфальтированная и асфальтированная городская с широкими тротуарами). Данные дорог хранятся и выгружаются из таблицы (ид дороги, центральная точка, состояние дороги, её уровень, поворот и т.д.). Все прекрасно загружается и работает, скрины ниже. Дороги идеально стыкуются между собой.
Также реализована костыльная (для тестов визуальной составляющей) система переходов между дорогами разного уровня. Скрины ниже для тех, кому интересно.
ВНИМАНИЕ ВОПРОС!
Так как система создания переходов между дорогами писалась просто для тестов, то и реализована она по принципу: если уровень дороги с road_ID не равен уровню дороги с road_ID+1, то переход создается справа дороги, если не равен с road_ID-1, то слева дороги. И это бы прекрасно работало, если дорога шла в одном направлении и IDшники шли бы последовательно, но дело дошло до перекрестков и разветвлений. И если перекресток имеет ID x, то дороги которые подходят к нему будут иметь IDшники x-1, x+1, x+2, x+3. Ну это так, как реализовано сейчас. Именно поэтому данная система просчета переходов между дорогами невозможна по принципу изложенного мной. Вот и мой вопрос, попрошу изложить ваши идеи как можно сделать. Необязательно прилагать код, достаточно просто описать суть, принцип работы системы по вашей задумке.
p.s.
Свой тестовый код тоже не прикрепляю, так как не вижу смысла. Но вкратце могу описать принцип работы.
Очень нужна ваша помощь, заранее благодарен всем неравнодушным!
СЕЛЬСКАЯ ДОРОГА (УРОВЕНЬ 1)
АСФАЛЬТИРОВАННАЯ ДОРОГА (УРОВЕНЬ 2)
ГОРОДСКАЯ ДОРОГА, ШИРОКИЙ ТРОТУАР (УРОВЕНЬ 3)
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
АСФАЛЬТИРОВАННАЯ ДОРОГА (УРОВЕНЬ 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, уровня дороги и других условий
}