c-Éî¶ÈÆÊÎöbehaviortree.cpp¹¹½¨ÖØ´ó»úеÈËÂß¼­µÄ¡°´óÄÔ

ȪԴ£ºÖ¤È¯Ê±±¨Íø×÷Õߣº
×ÖºÅ

¿ØÖƽṹ

¿ØÖƽṹ¾öÒéÁ˳ÌÐòµÄÖ´ÐÐÁ÷³Ì£¬C++ÌṩÁ˶àÖÖ¿ØÖƽṹÀ´ÊµÏÖÖØ´óµÄÂß¼­ ¡£

Ìõ¼þÓï¾ä£ºifÓï¾äºÍswitchÓï¾äÓÃÓÚÆ¾Ö¤Ìõ¼þÖ´Ðвî±ðµÄ´úÂë¿é ¡£ÀýÈ磺inta=10;if(a>0){std::cout<<"aÊÇÕýÊý"<

ÀýÈ磺for(inti=0;i<5;++i){std::cout<<"Ñ­»·´ÎÊý:"<

ÌáÉýQEMUÐÔÄÜ

µ÷½âÐéÄâ»úÉèÖãºÆ¾Ö¤×°±¸µÄÓ²¼þÉèÖ㬺ÏÀíµ÷½âQEMUµÄÄÚ´æ¡¢CPUºÍ´æ´¢ÉèÖã¬ÒÔ»ñµÃ×î¼ÑÐÔÄÜ ¡£

ʹÓÃÓÅ»¯µÄLinux¿¯Ðа棺ѡÔñÇáÁ¿¼¶µÄLinux¿¯Ðаæ£¬ÒÔïÔ̭ϵͳ×ÊÔ´Õ¼Óã¬ÌáÉýÕûÌåÔËÐÐËÙÂÊ ¡£

ÆôÓÃÐÔÄÜÓÅ»¯Ñ¡ÏÔÚQEMUÖÐÆôÓÃÐÔÄÜÓÅ»¯Ñ¡ÏÀýÈçÆôÓÃCPUÐéÄ⻯ÊÖÒÕ£¬ÒÔ»ñµÃ¸ü¸ßµÄÔËÐÐЧÂÊ ¡£

¹¹½¨ÖØ´óÂß¼­

ʹÓÃComposite½ÚµãºÍ¿ØÖƽڵ㣬¹¹½¨¸üÖØ´óµÄÂß¼­ ¡£ÀýÈ磬ʹÓÃSelector½Úµã¿ÉÒÔʵÏÖ¶à¸öʹÃüµÄÑ¡ÔñÂß¼­£º

autoselector=bt::Selector::Create("TaskSelector");selector->AddChild(moveTask);selector->AddChild(anotherTask);root->AddChild(selector);

ʾÀý£ºÎï×ÊÔËÊäʹÃü

ÔÚÒ»¸öÎï×ÊÔËÊäʹÃüÖУ¬¶ą̀»úеÈËÐèҪЭͬÊÂÇ飬½«Îï×Ê´ÓÒ»¸öÆðµãÔËÊäµ½¶à¸öÄ¿µÄµØ ¡£Ã¿¸ö»úеÈ˶¼ÓÐ×Ô¼ºµÄÐÐΪÊ÷£¬µ«ÐèÒª¹²ÏíÎï×ÊλÖúÍÄ¿µÄµØÐÅÏ¢£¬´Ó¶ø¶¯Ì¬µ÷½âÔËÊä·¾¶ºÍʹÃü·ÖÅÉ ¡£

autoloadGoods=bt::ActionNode::Create("LoadGoods",(bt::Context&context){//×°ÔØÎï×ÊÂß¼­returnbt::NodeStatus::SUCCESS;});autotransportToDestination=bt::ActionNode::Create("TransportToDestination",(bt::Context&context){//ÔËÊäÎï×ÊÂß¼­returnbt::NodeStatus::SUCCESS;});autorobotTransportTree=bt::Sequence::Create("RobotTransportTree");robotTransportTree->AddChild(loadGoods);robotTransportTree->AddChild(transportToDestination);//·ÖÅÉÐÐΪÊ÷¸ø²î±ð»úеÈËfor(auto&robot:robots){robot->AddChild(robotTransportTree);}

У¶Ô£ººúÊæÁ¢(f3J1ePQDlzHhwh44q38w4Ima2E3XrDq)

ÔðÈα༭£º ÕÅȪÁé
ÉùÃ÷£ºÖ¤È¯Ê±±¨Á¦ÕùÐÅÏ¢ÕæÊµ¡¢×¼È·£¬ÎÄÕÂÌá¼°ÄÚÈݽö¹©²Î¿¼£¬²»×é³ÉʵÖÊÐÔͶ×ʽ¨Ò飬¾Ý´Ë²Ù×÷Σº¦×Ôµ£
ÏÂÔØ"֤ȯʱ±¨"¹Ù·½APP£¬»ò¹Ø×¢¹Ù·½Î¢ÐŹ«Öںţ¬¼´¿ÉËæÊ±Ïàʶ¹ÉÊж¯Ì¬£¬¶´²ìÕþ²ßÐÅÏ¢£¬ÕÆÎղƲú»ú»á ¡£
ΪÄãÍÆ¼ö
Óû§Ì¸ÂÛ
µÇ¼ºó¿ÉÒÔ½²»°
ÍøÓÑ̸ÂÛ½ö¹©Æä±í´ïСÎÒ˽¼Ò¿´·¨£¬²¢²»Åúע֤ȯʱ±¨Ì¬¶È
ÔÝÎÞ̸ÂÛ
c-Éî¶ÈÆÊÎöbehaviortree.cpp¹¹½¨ÖØ´ó»úеÈËÂß¼­µÄ¡°´óÄÔ