框架-Node
-
组合节点-Composite Node
- 选择节点-Selector Node:一真则真,全假则假
- 顺序节点-Sequence Node:一假则假,全真则真
- 并行节点-Parallel Node:并发执行
装饰节点-Decorator Node
条件结点-Condition Node
行为节点-Action Node
Composite Node
例如:
/*
* Composite Node,其实它按复合性质还可以细分为3种:
* =>Selector Node:一真则真,全假则假;
* =>Sequence Node:一假则假,全真则真;
* =>Parallel Node:并发执行;
*/
using System.Collections.Generic;
namespace lemon_bt_CShape
{
public class Bt_Composite : Bt_Node
{
protected List<Bt_Node> children;
public Bt_Composite()
{
children = new List<Bt_Node>();
}
public void addChild(Bt_Node node)
{
this.children.Add(node);
}
}
}
Decorator Node
例如:
/*
* Decorator node.
*/
using System.Collections.Generic;
namespace lemon_bt_CShape
{
public class Bt_Decorator : Bt_Node
{
private Bt_Node child;
public Bt_Decorator()
{
child = null;
}
protected void setChild(Bt_Node node)
{
this.child = node;
}
}
}
Condition Node
例如:
/*
* Condition node.
*/
namespace lemon_bt_CShape
{
public class Bt_Condition : Bt_Node
{
public override Bt_Result doAction()
{
return Bt_Result.FAIL;
}
}
}
Action Node
例如:
/*
* Action Node
* 它完成具体的一次(或一个step)的行为,视需求返回值;
* 叶子节点;
*/
namespace lemon_bt_CShape
{
public class Bt_Action:Bt_Node
{
}
}