43 if(_path.size() > 0) {
44 _curr_path_waypoint = _path.size() - 1;
45 _dummy = _ai_char->_window_render.attach_new_node(
"dummy");
46 _dummy.set_pos(_path[_curr_path_waypoint]);
47 _ai_char->_steering->pursue(_dummy, _follow_weight);
48 _time = _myClock->get_real_time();
61 if((_myClock->get_real_time() - _time) > 0.5) {
62 if(_type==
"pathfind") {
66 if(_ai_char->_steering->_path_find_obj->_dynamic_avoid) {
67 _ai_char->_steering->_path_find_obj->do_dynamic_avoid();
70 _ai_char->_steering->_path_find_obj->path_find(_ai_char->_steering->_path_find_obj->_path_find_target);
72 if(_path.size() > 0) {
73 _curr_path_waypoint = _path.size() - 1;
74 _dummy.set_pos(_path[_curr_path_waypoint]);
78 _curr_path_waypoint = -1;
85 else if(_ai_char->_steering->_path_find_obj->_path_find_target.get_pos(_ai_char->_window_render)
86 != _ai_char->_steering->_path_find_obj->_prev_position) {
89 _ai_char->_steering->_path_find_obj->path_find(_ai_char->_steering->_path_find_obj->_path_find_target);
91 if(_path.size() > 0) {
92 _curr_path_waypoint = _path.size() - 1;
93 _dummy.set_pos(_path[_curr_path_waypoint]);
97 _curr_path_waypoint = -1;
101 _time = _myClock->get_real_time();
105 if(_curr_path_waypoint > 0) {
106 double distance = (_path[_curr_path_waypoint] - _ai_char->_ai_char_np.get_pos(_ai_char->_window_render)).length();
109 _curr_path_waypoint--;
110 _dummy.set_pos(_path[_curr_path_waypoint]);
120 Node* src =
find_in_mesh(_ai_char->_steering->_path_find_obj->_nav_mesh, _ai_char->_ai_char_np.get_pos(_ai_char->_window_render), _ai_char->_steering->_path_find_obj->_grid_size);
121 LVecBase3 _prev_position = _ai_char->_steering->_path_find_obj->_path_find_target.get_pos(_ai_char->_window_render);
122 Node* dst =
find_in_mesh(_ai_char->_steering->_path_find_obj->_nav_mesh, _prev_position, _ai_char->_steering->_path_find_obj->_grid_size);
Node * find_in_mesh(NavMesh nav_mesh, LVecBase3 pos, int grid_size)
This function allows the user to pass a position and it returns the corresponding node on the navigat...