Skip to content

Paltr/SeaBoom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

SeaBoom

Общее описание

Этот репозиторий - маленкая часть моего домашнего проекта. Т.к. проект домашний - комментарии в исходниках есть лишь там, где лично мне, через какое-то время, может быть неясно, почему сделано так, а не иначе.

Проект кроссплатформенный, в первую очередь на мобильные платформы нацелен. Написан на C++, ObjC, Java. Редакторы на C#. Старые видео можно тут посмотреть:

https://www.youtube.com/watch?v=Nl-oXwyt8iQ

https://www.youtube.com/watch?v=0tiVvB1qcFQ

https://www.youtube.com/watch?v=-5DUHQWIa9E

https://www.youtube.com/watch?v=4EYf-mkdARY

Исходники

Roulette

В папке Roulette находится generic класс для выбора произвольного объекта среди группы зарегистрированных.

Roulette/Impl/RouletteImpl - класс-реализация, используется для реализации более высокоуровневых Roulette и PricedObjectRoulette

Roulette/Roulette - класс, в котором регистрируются объекты и шанс их выпадения. Далее, с помощью метода GetNext, можно получать следующий объект с учетом шанса выпадения.

Roulette/PricedObjectRoulette - подобен Roulette, но объекты имеют еще один параметр - стоимость в очках. В PricedObjectRoulette, с помощью метода SetPointsAmount, задается общее количество очков, GetNext выдает следующий объект, на который хватает очков и с учетом шанса выпадения, а также вычитает стоимость выпавшего объекта из общего количества очков.

Roulette/RouletteHistoryMixin - миксина, которая при применении к Roulette, PricedObjectRoulette и подобным добавляет слежение за историей выпадений объектов, позволяя исключить повторное выпадение объекта, если он выпадал недавно, т.е. еще находится в очереди выпавших объектов. Размер очереди задается методом SetHistoryLength.

Creatures

В папке Creature находятся базовые классы для игровых созданий.

ICreatureBase - базовый интерфейс созданий, без возможности назначения высокоуровневых задач(преследование, атака и прочие). Создается посредством применения миксин для представления пространственных объектов(SpatialDBObjectMixin - добавляет возможность манипулировать объектом в пространственной базе данных), миксин физических объектов(добавляет представление объекта в физическом мире, со скоростями, массами и всем остальным), миксин управляемых объектов(IManagedSeekObjectMixin - позволяет управлять объектом, задавая различные скоростные характеристики). Т.е. все эти миксины являются reusable - они используются в различных проектах и на разных объектах.

ICreature - наследник ICreatureBase, главная функция - предоставляет возможность назначения высокоуровневых задач(преследование, атака и прочие). В основном высокоуровневые задачи реализуются посредством класса CreatureMotionSys.

CreatureMotionSys - реализация системы для управления низкоуровневыми двигательными задачами(следовать в определенную позицию, по определенному углу, за определенной целью и прочие), посредством которых реализуются высокоуровневые задачи ICreature. Реализуется через объекты-задачи из библиотеки для управляемых объектов, т.е. весь код тоже reusable.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages