private void CheckBounds()
{
CheckBarBounds(ref bar1Dest);
CheckBarBounds(ref bar2Dest);
CheckBallBounds();
}
private void CheckBarBounds(ref Point bar)
{
if (bar.Y <= 10)
bar.Y = 11;
if (bar.Y > target.ClientSize.Height - barSpriteH - 11)
bar.Y = target.ClientSize.Height - barSpriteH - 11;
}
private void CheckBallBounds()
{
if(ballDest.Y < 10 || ballDest.Y > target.ClientSize.Height - 37)
ballSpeed.Y*=-1;
if(ballDest.X < 10)
{
launched1 = false;
shoted1 = false;
score.Y++;
}
if(ballDest.X > target.ClientSize.Width - 37)
{
launched2 = false;
shoted2 = false;
score.X++;
}
/*BARRA 1*/
if(poinged2 && (ballDest.X <= bar1Dest.X + barSpriteW))
{
if((ballDest.Y + 27 >= bar1Dest.Y) && (ballDest.Y+27/2 <= bar1Dest.Y + barSpriteH/3))
{
ballSpeed.Y++;
ballSpeed.X *= -1;
if(ballSpeed.Y > 0)
ballSpeed.X--;
else
ballSpeed.X++;
if(ballSpeed.X == 0)
ballSpeed.X = 5;
poinged2 = false;
poinged1 = true;
return;
}
if((ballDest.Y+27/2 > bar1Dest.Y + barSpriteH/3) && (ballDest.Y+27/2 <= bar1Dest.Y + barSpriteH/3*2))
{
ballSpeed.X *= -1;
poinged2 = false;
poinged1 = true;
return;
}
if((ballDest.Y+27/2 > bar1Dest.Y + barSpriteH/3*2) && (ballDest.Y <= bar1Dest.Y + barSpriteH))
{
ballSpeed.Y--;
ballSpeed.X *= -1;
if(ballSpeed.Y > 0)
ballSpeed.X++;
else
ballSpeed.X--;
if(ballSpeed.X == 0)
ballSpeed.X = 5;
poinged2 = false;
poinged1 = true;
return;
}
}
/*BARRA 2*/
if(poinged1 && (ballDest.X + 27 >= bar2Dest.X))
{
if((ballDest.Y + 27 >= bar2Dest.Y) && (ballDest.Y+27/2 <= bar2Dest.Y + barSpriteH/3))
{
ballSpeed.Y++;
ballSpeed.X *= -1;
if(ballSpeed.Y > 0)
ballSpeed.X--;
else
ballSpeed.X++;
if(ballSpeed.X == 0)
ballSpeed.X = 5;
poinged1 = false;
poinged2 = true;
return;
}
if((ballDest.Y+27/2 > bar2Dest.Y + barSpriteH/3) && (ballDest.Y+27/2 <= bar2Dest.Y + barSpriteH/3*2))
{
ballSpeed.X *= -1;
poinged1 = false;
poinged2 = true;
return;
}
if((ballDest.Y+27/2 > bar2Dest.Y + barSpriteH/3*2) && (ballDest.Y <= bar2Dest.Y + barSpriteH))
{
ballSpeed.Y--;
ballSpeed.X *= -1;
if(ballSpeed.Y > 0)
ballSpeed.X--;
else
ballSpeed.X++;
if(ballSpeed.X == 0)
ballSpeed.X = 5;
poinged1 = false;
poinged2 = true;
return;
}
}
}
public void UpdateBallDestination()
{
if(!launched1 )
{
ballDest.X = bar1Dest.X+7;
ballDest.Y = bar1Dest.Y+35-27/2;
ballSpeed.X = 0;
ballSpeed.Y = 0;
if(shoted1)
{
launched1 = true;
ballSpeed.X = ballSpeedX;
ballSpeed.Y = ballSpeedX;
}
}
if(!launched2 )
{
ballDest.X = bar2Dest.X-27;
ballDest.Y = bar2Dest.Y+35-27/2;
ballSpeed.X = 0;
ballSpeed.Y = 0;
if(shoted2)
{
launched2 = true;
ballSpeed.X = -ballSpeedX;
ballSpeed.Y = -ballSpeedX;
}
}
if(launched2 && launched1 && shoted2 && shoted1)
{
ballDest.X+=ballSpeed.X;
ballDest.Y+=ballSpeed.Y;
}
}