public override Bt_Result doAction()
    {
        Bt_Result _result = Bt_Result.RUNING;
        string    msg     = "test node TestNodeRuning";

        Bt_Debug.Debug(_result, msg);
        return(_result);
    }
Esempio n. 2
0
    static void testBt_Decorator()
    {
        Console.WriteLine("test Bt_Decorator=>");
        Bt_Decorator    pasel  = new Bt_Decorator();
        TestNodeFail    _test1 = new TestNodeFail();
        TestNodeSuccess _test2 = new TestNodeSuccess();
        TestNodeRuning  _test3 = new TestNodeRuning();


        Bt_Result result = pasel.doAction();

        Console.WriteLine("test Bt_Decorator result =>" + result);
    }
Esempio n. 3
0
    static void testBt_ParallelSequence()
    {
        Console.WriteLine("test Bt_ParallelSequence=>");
        Bt_ParallelSequence paseq  = new Bt_ParallelSequence();
        TestNodeFail        _test1 = new TestNodeFail();
        TestNodeSuccess     _test2 = new TestNodeSuccess();
        TestNodeRuning      _test3 = new TestNodeRuning();

        paseq.addChild(_test1);
        paseq.addChild(_test2);
        paseq.addChild(_test3);

        Bt_Result result = paseq.doAction();

        Console.WriteLine("test Bt_ParallelSequence result =>" + result);
    }
Esempio n. 4
0
    static void testBt_ParallelSelector()
    {
        Console.WriteLine("test Bt_ParallelSelector=>");
        Bt_ParallelSelector pasel  = new Bt_ParallelSelector();
        TestNodeFail        _test1 = new TestNodeFail();
        TestNodeSuccess     _test2 = new TestNodeSuccess();
        TestNodeRuning      _test3 = new TestNodeRuning();

        pasel.addChild(_test1);
        pasel.addChild(_test2);
        pasel.addChild(_test3);

        Bt_Result result = pasel.doAction();

        Console.WriteLine("test testBt_ParallelSelector result =>" + result);
    }
Esempio n. 5
0
    static void testBt_Select()
    {
        Console.WriteLine("test Bt_Select=>");
        Bt_Select       sel    = new Bt_Select();
        TestNodeFail    _test1 = new TestNodeFail();
        TestNodeSuccess _test2 = new TestNodeSuccess();
        TestNodeRuning  _test3 = new TestNodeRuning();

        sel.addChild(_test1);
        sel.addChild(_test2);
        sel.addChild(_test3);

        Bt_Result result = sel.doAction();

        Console.WriteLine("test testBt_Select result =>" + result);
    }
Esempio n. 6
0
        public override Bt_Result Do_Action()
        {
            if (this.children == null || this.children.Count == 0)
            {
                return(Bt_Result.Successful);
            }

            Bt_Result result = Bt_Result.None;

            List <Bt_Node> waitNodes = new List <Bt_Node>();
            List <Bt_Node> mainNodes = new List <Bt_Node>();

            mainNodes = this.m_pWaitNodes.Count > 0 ? this.m_pWaitNodes : this.children;

            for (int length = mainNodes.Count, i = 0; i < length; i++)
            {
                result = mainNodes[i].Do_Action();

                switch (result)
                {
                case Bt_Result.Successful:
                    this.m_PIsSuccess = true;
                    break;

                case Bt_Result.Runing:
                    waitNodes.Add(mainNodes[i]);
                    break;

                default:
                    break;
                }
            }

            //存在等待节点就返回等待节点
            if (waitNodes.Count > 0)
            {
                this.m_pWaitNodes = waitNodes;
                return(Bt_Result.Runing);
            }
            //检查返回结果
            this.m_pWaitNodes = waitNodes;
            Reset();
            return(Bt_Result.Runing);
        }
Esempio n. 7
0
 public static void Debug(Bt_Result _result,string msg)
 {
     switch (_result)
     {
         case Bt_Result.FAIL:
             Console.ForegroundColor = ConsoleColor.Red;
             break;
         case Bt_Result.RUNING:
             Console.ForegroundColor = ConsoleColor.Yellow;
             break;
         case Bt_Result.SUCCESSFUL:
             Console.ForegroundColor = ConsoleColor.Green;
             break;
         default:
             Console.ForegroundColor = ConsoleColor.White;
             break;
     }
     Console.WriteLine(msg);
     Console.ForegroundColor = ConsoleColor.White;
 }