【发布时间】:2010-12-11 14:43:53
【问题描述】:
我目前正在制作的游戏有一个简单的实体系统。我有 CEntity 类(不使用继承,基于组件)和实体管理器。
CEntity 使用元表绑定到 Lua,当您从 Lua 中创建新实体时,会在 C++ 中在分配的用户数据中创建一个新实体。
这样就好了,但是我遇到了一个大问题:
- 如何实现类似 ents.GetByID() 的东西?
ents.GetByID() 应该返回对 ID 为 x 的实体的引用。我目前所做的:创建一个新的用户数据,填充现有实体 x 的 memcpy()。
但这显然不起作用:首先,它弄乱了实体管理器,其次:如果我更改“引用”实体,实际实体保持不变 - 我实际上有两个独立的实体。
- 如何将对现有用户数据的引用推送到堆栈上?
【问题讨论】:
-
OP 请求删除问题,并清除内容。 @Cats:为什么?