Ejemplo n.º 1
0
KickTo::KickTo(World& w ,double _target_angle){
		// angle:count = 90:15
		//std::cout << "KickTo constructed!!" << std::endl;
    finish_flag = false;

    is_kicked = false;
    target_angle = _target_angle;
    judgement(w);
    updateFinishFlag(w);
}
Ejemplo n.º 2
0
std::string Attack::getNextAngle(World& w) {
    std::stringstream ss;
    if((w.getPlaymode()=="BeforeKickOff" ||
       w.getPlaymode()=="Goal_Left" ||
       w.getPlaymode()=="Goal_Right")){
        beam_flag = true;
	start_flag = true;
        ss << "(beam " << initpos[0] << " "
                << initpos[1] << " " << initpos[2]
                << ")";
        // std::cout << ss.str() << std::endl;
	
	while(!elementList.empty()){
	  ElementBase* tmp = elementList.front();
	  delete tmp;
	  elementList.pop_front();
	}
	elementList.push_back(new SequenceMovement("DUMMY"));
    }
    if((w.getPlaymode()=="KickOff_Left" || w.getPlaymode()=="KickOff_Right") && w.getUnum() == 10 && start_flag == true){
      elementList.push_front(new Kick());
      start_flag = false;
    }
    else if((w.getPlaymode()=="KickOff_left" || w.getPlaymode()=="KickOff_Right") && start_flag == true){
      elementList.push_back(new SequenceMovement("DUMMY"));
      start_flag = false;
    }
    
    
    rtn = elementList.front()->getNextAngle(w);
    if(beam_flag){
        rtn += ss.str();
        beam_flag = false;
    }
    if (elementList.front()->isFinished())
    {
        ElementBase* tmp = elementList.front();
        delete tmp;
        elementList.pop_front();
    }
    if (finishAllChild(w))
    {
        updateFinishFlag(w);
    }
    return rtn;
}
Ejemplo n.º 3
0
AdjustToBall::AdjustToBall(World& w){
    finish_flag = false;
    
    for(int i=0; i<2; i++){
      ballpos[i] = w.getBXY(i);
      bal[i] = w.getBAL(i);
    }
    conf_ballpos = w.confBXY();
    conf_bal = w.confBAL();
    x = w.getXY(0);
    y = w.getXY(1);
    conf_XY = w.confXY();

    t_count = abs(15 * bal[1] / 360);

    judgement(w);
    updateFinishFlag(w);
}