ITreeNode::TResult CalculateAvoidanceDestiny::Run() { Entity * enemy; context->GetValueEntity(TreeContext::KEY_THREAT, &enemy); Vec2D direction, threat; float projection; direction.x = DegCos(owner->rotation - 90)*linearSpeed; direction.y = DegSin(owner->rotation - 90)*-linearSpeed; threat.x = enemy->x - owner->x; threat.y = enemy->y - owner->y; projection=threat.Dot(direction); direction.normalize(); return TResult(); }
virtual bool eat(std::vector<unsigned char>& data) { result = TResult(); //clear Iterator iter = data.begin(); Iterator end = data.end(); if (qi::parse(iter, end, grammar, result)) { data.erase(data.begin(), iter); if (callback) { callback(result); } return true; } return false; }