xtodx / mapgenerator
Map Generator
dev-master
2019-01-31 22:44 UTC
Requires
- php: >=7.0
- phpunit/phpunit: 7.5.x-dev
This package is auto-updated.
Last update: 2025-03-01 00:45:34 UTC
README
Сначала генерация была сделана так
function generate() { $terrainCount = count($this->terrainTypes) - 1; for ($i = 0; $i < $this->y; $i++) { $this->terrains[] = []; $this->units[] = []; for ($k = 0; $k < $this->x; $k++) { $this->terrains[$i][] = $this->createTerrain($this->terrainTypes[rand(0, $terrainCount)], $k, $i); $possibleUnits = $this->terrains[$i][$k]->getPossibleUnits(); $this->units[$i][$k] = null; if (count($possibleUnits) > 0) { if ($this->distribution() == 0) { $this->totalUnits++; $this->units[$i][$k] = $this->createUnit($possibleUnits[rand(0, count($possibleUnits) - 1)], rand(0, $this->teams - 1)); $this->terrains[$i][$k]->setUnit($this->units[$i][$k]); } } } } return $this->terrains; }
Но нам в первую очередь нужно всё-же генерировать базы, иначе:
- Мы можем сгенерировать меньшее колво баз
- Может быть занята вся территория, на которой может разместиться база
Теперь работает в 3 этапа
- Генерация ландшафта
- Генерация лимитированных обьектов на карте(например баз) количество которых равно количеству команд
- Генерация остальных обьектов
- Ведётся огонь
- Перемещаются юниты
- Что дают базы
Установка
composer require xtodx/mapgenerator dev-master