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