1) объявление объекта (без инициализации)
QTranslate называется, интересно - гуглите.
HWND window = HWND(); и HWND window(); - это одно и то же
window
, без параметров и типом результата HWND
.int i = int();
и int i;
делают кардинально разные вещи: в первом случае инициализация копией, во втором - инициализация по умолчанию. Первый случай гарантированно инициализирует объект, а второй - нет.int i = int();
будет эквивалентен int i{};
.nullptr
. HWND window();
Есть слабый комп с 1 ГГц процом и 512 Мб оперативки.
т.е. из всей игры, ecs лишь маленькая часть, которая обрабатывает правила игры?
получается есть класс игрок со ссылкой на сущность, в этой сущности все его данные и способности, а самим классом управляет уже не ecs, а другая система, в частности пользователь через ui, соответственно ai игроком управляет скрипт? ecs разве не может это делать?
обезличивание сущностей значит игрок != entity, мы не можем сказать что у этой сущности такой то набор компонентов, значит это игрок?
Какие например свойства являются сущностями?
сущность, в этой сущности все его данные и способности
Вообще, складывается такое ощущение, что на практике ECS удобнее использовать как каркас для игрового цикла, т.к. все системы прокручиваются в update, система может работать без сущностей, типа отрисовывать внешний ui, несколько групп систем, которые работают с определенным набором компонентов и сущностей, все это связывается через event'ы.
получается в идеальном варианте, абсолютно любой компонент можно добавить/удалить абсолютно любой entity и система, которая использует этот компонент что то сделает, если же какой то компонент нельзя дать сущности, то что то не так значит надо пересматривать архитектуру?
один непонятный момент, если пустой компонент наделяет сущность уже как бы флагом чего то, то для чего в компонент можно добавить кучу полей с информацией.
CharacterStateComponent
- это пример очень плохо сформулированного компонента. Я вижу там мультикомпонент - этот компонент можно и нужно разделить на несколько: движение, навыки, привязка к локации, боевка, смерть и умирание. Процесс умирания и смерть - это два разных состояния игрока, это разные компоненты.
Да, я заметил оба тега, но свой комментарий писал только относительно C++, опираясь только на код в вопросе и прошлые вопросы автора.