Игра, которую я делаю в настоящее время, имеет простую систему сущностей.У меня есть класс CEntity (без использования наследования, на основе компонентов) и менеджер сущностей.
CEntity связан с Lua с метатаблицей, и когда вы создаете новую сущность из Lua, новая сущность создается вC ++ в выделенных пользовательских данных.
Так что все будет в порядке, однако я столкнулся с одной огромной проблемой:
- Как мне реализовать что-то вроде ents.GetByID ()?
ents.GetByID () должен возвращать ссылку на сущность с идентификатором x.Что я сейчас делаю: создаю новые пользовательские данные, заполняю memcpy () существующей сущности x.
Это, однако, явно не работает: во-первых, это портит менеджер сущностей, а во-вторых: если я изменяю«ссылочная» сущность, фактическая сущность остается прежней - у меня фактически есть две отдельные сущности.
- Как мне вставить ссылку на существующий элемент данных в стеке?