Demo - тык
В ближайшие дни код будет переписан(смена архитектуры)
Информация предварительная и может редактироваться.
Что осталось сделать?
- Сделать нормальный радар(оптимизированный)
- Сделать, чтобы ИИ одного игрока не убегало вперед другого(новый тик после ответа каждого ИИ)
- Добавить стрельбу
- Рандом по сиду
- Генерация мира и генерация позиции для спавна игроков
- Добавить здоровье
- Регулирование скорость поворота танка/пушки и скорость движения танка
Вот пример отправки с ИИ на движок команд:
postMessage({action: ['moveBack','rotateRightGun', 'rotateRightBody']});
Всего существует 7 команд:
rotateRightBody
- Поворачивать вправо.rotateLeftBody
- Поворачивать влево.rotateRightGun
- Поворачивать вправо пушку.rotateLeftGun
- Поворачивать влево пушку.moveForward
- Движение вперед.moveBack
- Движение назад.shoot
- Стрельба.
В дальнейшем угол поворота танка, башни и скорость танка будет изменяться самим ИИ и будет выставлен предел.
Отправлять их стоит отвечая на сообщения движка, которое будет выглядить похожем на это:
Object { mePos: Array[2], visibleObj: Array[0], tick: 0 }
Cервера будет присылать следующее:
- Вашу позицию.
- Угол поворота шасси.
- Угол поворота пушки.
- И расстояние до объекта, с которым будет сталкиваться невидимый вектор, исходящий из пушки, его тип, координаты и если это игрок, то и уровень.
- Ваш уровень здоровья.