-
Notifications
You must be signed in to change notification settings - Fork 4
怎样获取Space中机关、陷阱Entity实体(查找指定实体)?
ilvxna edited this page Aug 6, 2018
·
9 revisions
问: 在一个游戏场景Space实体中,是有很多机关、陷阱Entity实体的。我们有一个游戏重置的功能,是要把Space中部分Entity的属性值设置为初始值,那我怎样才能在Space实体中获取到某个机关的Entity实体呢?
答: 方法很多
1: 机关创建的时候将自己注册给space实体, 例如:space实体有spaceEntity.xxxEntityIDs, 想找到所有相关实体就遍历这个id表, 然后
if id in KBEngine.entities : e = KBEngine.entities[id]
就得到实体了。
2: 直接遍历:
KBEngine.entities
for x in KBEngine.entities.values(): if x.className == "XXX"
就可以得到所有指定类型的实体了, 如果只需要搜集某个space中的某类实体, 可以再加个判断
if e.spaceID == spaceID。
3: 你还可以将思路反过来, 例如:在KBEngine.globalData中放置一个相关space的状态
KBEngine.globalData["space1_reset"] = true
所有相关实体不断检查
if KBEngine.globalData["space1_reset"] == ture:
条件合法则重置自己,虽然这个例子某些情况下比上面耗一点,但是一个思路,你可以想想