Wurst标准库提供了units的简单便利的封装.
名义上说 ForUnitsInXXX
函数族创建了一个基于 group
句柄类型的抽象.
你只需要了解一下这个接口就行了.
interface ForGroupCallback
function callback(unit u)
ClosureForGroups
包会提供给你一些函数, 将会用到ForGroupcallback
.
单位:
group.forEachFrom() u ->
// 删除单位组,每次遍历访问U
// `u`.
forUnitsOfPlayer(player p) u ->
// 迭代玩家P的所有单位
// 注意这个方法封装了 `GroupEnumUnitsOfPlayer`,它包含了蝗虫单位
forUnitsAll() u ->
//通过迭代每个玩家的单位迭代所有单位.
forUnitsInRect(rect r) u ->
// 迭代矩形区域r中的单位
forUnitsInRange(vec2 pos, real radius) u ->
// 迭代圆范围内单位.
标准库提供了一些稍微更强悍一点的工具:
forNearestUnit(vec2 pos, real range, filterfunc filter) u ->
//在给定的过滤器下访问离pos最近的单位.
以及一些相似的,对可破坏物的封装
forDestructablesInRect(r) d ->
forNearestDestructable(pos, range) ->