From 63153bc8e742c522cfd3f5ab10609966e33310e6 Mon Sep 17 00:00:00 2001 From: chai Date: Fri, 9 Nov 2018 08:33:36 +0800 Subject: =?UTF-8?q?*=E6=9B=B4=E6=96=B0=E7=8A=B6=E6=80=81=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libjin/ai/je_behavior_tree.h | 37 ++++++++++++++++++++++++++++- src/libjin/ai/je_state_machine.h | 17 +++++++++++-- src/lua/modules/ai/je_lua_ai.cpp | 13 ++++++++++ src/lua/modules/ai/je_lua_behavior_tree.cpp | 11 +++++++++ src/lua/modules/ai/je_lua_statemachine.cpp | 11 +++++++++ 5 files changed, 86 insertions(+), 3 deletions(-) create mode 100644 src/lua/modules/ai/je_lua_ai.cpp (limited to 'src') diff --git a/src/libjin/ai/je_behavior_tree.h b/src/libjin/ai/je_behavior_tree.h index 8621696..173df80 100644 --- a/src/libjin/ai/je_behavior_tree.h +++ b/src/libjin/ai/je_behavior_tree.h @@ -4,19 +4,54 @@ #include "../core/je_configuration.h" #if defined(jin_ai) +#include + namespace JinEngine { namespace AI { - + /// /// /// class BehaviorTree { + public: + BehaviorTree(void* userData) : mUserData(userData){} + + class Node + { + public: + enum Type + { + + }; + + enum Status + { + Running, + Success, + Failure + }; + + Status status; + }; + + typedef std::function UpdateCallback; + + Node makeNode(Node::Type type, UpdateCallback callback); + + private: + + /// + /// + /// + void* const mUserData; }; + typedef BehaviorTree::Node::Status BahaviorNodeStatus; + } // namespace AI } // namespace JinEngine diff --git a/src/libjin/ai/je_state_machine.h b/src/libjin/ai/je_state_machine.h index 2921ecd..d496c61 100644 --- a/src/libjin/ai/je_state_machine.h +++ b/src/libjin/ai/je_state_machine.h @@ -16,7 +16,6 @@ namespace JinEngine { namespace AI { - // Grab from Unity. /// /// A single layer statemachine. @@ -295,6 +294,9 @@ namespace JinEngine private: + /// + /// + /// struct Parameter { ParameterType type; @@ -409,4 +411,15 @@ namespace JinEngine #endif // jin_ai -#endif \ No newline at end of file +#endif + +//local sp = jin.graphics.newSprite() +//local sm = jin.ai.newStateMachine(jin.StateMachineMode.STEPWISE, sp) +//sm:addState("run") +//sm:addEnterCallback("run", function(spr) +// spr:setRun() +//end) +// +//function jin.core.onUpdate(dt) +// sm:update() +//end diff --git a/src/lua/modules/ai/je_lua_ai.cpp b/src/lua/modules/ai/je_lua_ai.cpp new file mode 100644 index 0000000..4afd625 --- /dev/null +++ b/src/lua/modules/ai/je_lua_ai.cpp @@ -0,0 +1,13 @@ +#include "libjin/jin.h" + +using namespace JinEngine::AI; + +namespace JinEngine +{ + namespace Lua + { + + + + } +} \ No newline at end of file diff --git a/src/lua/modules/ai/je_lua_behavior_tree.cpp b/src/lua/modules/ai/je_lua_behavior_tree.cpp index e69de29..f79d79a 100644 --- a/src/lua/modules/ai/je_lua_behavior_tree.cpp +++ b/src/lua/modules/ai/je_lua_behavior_tree.cpp @@ -0,0 +1,11 @@ +#include "libjin/jin.h" + +namespace JinEngine +{ + namespace Lua + { + + + + } +} \ No newline at end of file diff --git a/src/lua/modules/ai/je_lua_statemachine.cpp b/src/lua/modules/ai/je_lua_statemachine.cpp index e69de29..f79d79a 100644 --- a/src/lua/modules/ai/je_lua_statemachine.cpp +++ b/src/lua/modules/ai/je_lua_statemachine.cpp @@ -0,0 +1,11 @@ +#include "libjin/jin.h" + +namespace JinEngine +{ + namespace Lua + { + + + + } +} \ No newline at end of file -- cgit v1.1-26-g67d0