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();
	}
}
Beispiel #2
0
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());
		
	}
}
Beispiel #3
0
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();
}