Skip to content

怎样获取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: 条件合法则重置自己,虽然这个例子某些情况下比上面耗一点,但是一个思路,你可以想想

Clone this wiki locally