Skip to content

ARTmanq/RK3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RK3

  1. МЕХАНИКА ДВИЖЕНИЯ (MOVE, EJECT, SPLIT) а) Хранить текущую точку-направление (direction-point) движения в классе Client.Cell б) Добавить поле, kindOfCell в поле класса Client.Cell (данное поле определяет то, откуда нужно брать следующую direction-point и имеет 3 возможных значения: usual (для обычных клеток нашего игрока), ejected (для ejectedMass), splitted (для клеток которые только что раскололись) в) Сначала (avgX, avgY) изменяют свои координаты в сторону (mouseX, mouseY). Затем клетки которые имеют значение kindOfCell="usual" изменяют свои координаты в сторону (avgX, avgY). г) Direction-point клеток с kindOfCell="ejected" инициализируется один раз (при ejectMass) и больше не изменяется (то есть ejectedMass будет двигаться до этой точки и в ней остановится). д) Direction-point клеток с kindOfCell="splitted" ведут себя как "ejected" пока не попадут в свою direction-point, после этого их kindOfCell становится равным "usual". Возможно для клеток типа «splitted» нужно будет использовать повышенный SPEED SCALE FACTOR.

  2. ДОРАБОТКА СЪЕДАНИЯ ЕДЫ а) Все Cells являются едой, если они не вирусы (Client.Cell.virus != true) б) Опционально: В класс Client.Cell добавляется поле z, которое указывает приоритет во время отрисовки клетки. По умоляанию z = 1, при соприкосновении 2-ух клеток клетке с меньшей массой присваивается z = 0.

  3. МЕХАНИКА ВЗАИМОДЕЙСТВИЯ С ВИРУСАМИ а) При столкновении клетки с большим вирусом ничего не происходит, при столкновении с меньшим вирусом выполняется команда Split.

  4. ПОРЯДОК ОТРИСОВКИ ОБЪЕКТОВ: а) еда (Food) б) клетки (Сell.virus == false) в порядке возрастании массы в случае отсутствия в программе поля Client.Cell.z или сначала клетки с z = 0, если поле Client.Cell.z присутствует. в) вирусы

  5. ПОДСЧЕТ SCORES и ДОБАВЛЕНИЕ В LEADERBOARD (если это ещё не реализовано) считается ли EjectedMass всё ещё частью игрока?

  6. ГЕНЕРАЦИЯ ВИРУСОВ И ЕДЫ а) Еда генерируется каждую единицу времени по tick(). Метод tick() отправляет FoodGenerationMsg в MessageSystem, где все messages последовательно выполняются (это возможно поможет избежать проблем многопоточности при работе с Food). Если messages выполняются не последовательно, это нужно реализовать. Возможно tick() можно вызывать в Mechanics, может это будет отдельный поток. б) Новый вирус генерируется тогда, когда какой-то вирус исчезает.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages