void Screenshoter::captureArea(int delay) { //Give some time for desktop repainting in case delay=0 delay = (delay == 0) ? 200 : delay*1000; grabAreaWidget_ = new GrabAreaWidget(); if(grabAreaWidget_->exec() == QDialog::Accepted) { QTimer::singleShot(delay, this, SLOT(shootArea())); } else { delete grabAreaWidget_; grabAreaWidget_ = 0; qApp->desktop()->repaint(); emit refreshWindow(); } }
void Player::defenderPlayOn() { Rectangle dangerArea(-20.0f,10.0f,-3.0f,-10.0f); Num teammateNum=4; if(WM->getInterceptBallPos().y()>0) teammateNum=5; if ( WM->isFastestOur()) { if(dangerArea[WM->getInterceptBallPos()]||dangerArea[WM->getBallGlobalPos()]) { if(WM->getMyFreedom()>5) { putActionInQueue(SKILL->pass(teammateNum)); } else { GL_PRINT("test","clearBall"); putActionInQueue(SKILL->clearBall(teammateNum)); } } else { Rectangle shootArea(8.0f,9.5f,25.0f,-9.5f); if(shootArea[WM->getInterceptBallPos()]||shootArea[WM->getBallGlobalPos()]) { GL_PRINT("test","shoot"); if(WM->getMyGlobalPos().y()<-2) { putActionInQueue(SKILL->kickTo(WM->getOppGoalRight(),100,0,20)); } else if(WM->getMyGlobalPos().y()<2) { putActionInQueue(SKILL->kickTo(WM->getOppGoalCenter(),100,0,20)); } else { putActionInQueue(SKILL->kickTo(WM->getOppGoalLeft(),100,0,20)); } } else if(WM->getMyFreedom()>-0) { putActionInQueue(SKILL->dribble(Vector3f(20,0,0))); } else { /*if(WM->getTeammateGlobalPos(teammateNum).x()>10) { putActionInQueue(SKILL->directPass(teammateNum)); } else { putActionInQueue(SKILL->pass(teammateNum)); }*/ putActionInQueue(SKILL->pass(teammateNum)); } } } else { GL_PRINT("test","runStrategicPos"); /*if(WM->getMyNum()==2) putActionInQueue(SKILL->dashTo((WM->getBallGlobalPos()+WM->getOurGoalCenter())/2)); else*/ putActionInQueue(SKILL->runStrategicPos()); } }
void Player::attackerPlayOn() { //defaultPlayOn(); int teammateNum=4; if(WM->getMyNum()==4) {teammateNum=5;} Rectangle shootArea(8.0f,9.5f,25.0f,-9.5f); Rectangle sideArea1(13.0f,15.0f,25.0f,9.5f); Rectangle sideArea2(13.0f,-9.5f,25.0f,-15.0f); if(WM->isFastestOur()) if(shootArea[WM->getInterceptBallPos()]||shootArea[WM->getBallGlobalPos()]) { GL_PRINT("test","shoot"); if(WM->getMyGlobalPos().y()<0) { putActionInQueue(SKILL->kickTo(WM->getOppGoalRight(),100,0,15)); } else { putActionInQueue(SKILL->kickTo(WM->getOppGoalLeft(),100,0,15)); } } else if(WM->getMyFreedom()>2.5f) { if(sideArea1[WM->getInterceptBallPos()]||sideArea2[WM->getInterceptBallPos()]) { if(WM->getBallGlobalPos().x()<(WM->getOppBaseLine()-3)) { putActionInQueue(SKILL->kickBetween(WM->getOppGoalLeft(),WM->getOppGoalRight(),100,20)); } else { putActionInQueue(SKILL->kickTo((WM->getOppGoalCenter()-Vector3f(4,0,0)),60,30,10)); } } else { //putActionInQueue(SKILL->pass(teammateNum)); putActionInQueue(SKILL->dribble(Vector3f(20,0,0))); } } else if(WM->getMyFreedom()>-5) { /*if(WM->getTeammateGlobalPos(teammateNum).x()>10) { putActionInQueue(SKILL->directPass(teammateNum)); } else { putActionInQueue(SKILL->pass(teammateNum)); }*/ putActionInQueue(SKILL->pass(teammateNum)); //putActionInQueue(SKILL->dribble(Vector3f(20,0,0))); } else { putActionInQueue(SKILL->clearBall(teammateNum)); } else { GL_PRINT("test","runStrategicPos"); putActionInQueue(SKILL->runStrategicPos()); } //testSkill(); }