I think that commands like getSpriteInCircle() & getSpriteInBox() are making things even too easy sometimes, as it's basically:
int agk::getSpriteInCircle( UINT sprite, float x1, float y1, float radius)
{
float sx = agk::GetSpriteX(sprite) + agk::GetSpriteWidth(sprite)/2;
float sy = agk::GetSpriteY(sprite) + agk::GetSpriteHeight(sprite)/2;
float x_ = sx - x1;
float y_ = sy - y1;
float dist = sqrt(x_*x_ + y_*y_);
if(dist < radius)
return 1;
else
return 0;
}
Weird, but I'd prefer coding it myself (and I always do).
As for getSpriteInBox() it's probably:
int agk::getSpriteInBox( UINT sprite, float x1, float y1, float x2, float y2)
{
float x = agk::GetSpriteX(sprite) + agk::GetSpriteWidth(sprite)/2;
float y = agk::GetSpriteY(sprite) + agk::GetSpriteHeight(sprite)/2;
if(x > x1 && x < x2 && y > y1 && y < y2)
return 1;
else
return 0;
}
Althrough, there can be some checks if x2 is bigger than x1 && y2 is bigger than y1. (Also those samples I've gave probably don't show how those functions look like in real AppGameKit library).
Too many small functions are hard to remember.