struct Ball {
SDL_Surface *picture;
SDL_Rect des;
SDL_Rect source;
int speedX;
int speedY;
};
class Block {
public:
SDL_Surface *color;
SDL_Rect des;
SDL_Rect source;
bool activation;
bool invisibility;
bool checkHit (Ball *ball);
void makeInvisible();
};
bool Block::checkHit(Ball *ball)
{
if (activation)
{
if (ball->des.x >= Block.des.x && ball->des.x <= Block.des.x + Block.source.w)
{
ball->speedY *= -1;
activation = false;
return true;
}
else return false;
}
}
Когда я хочу, чтобы скомпилировать эту программу, компилятор обнаруживает ошибку в блоке :: checkHit ошибки C2275: «Блок»: незаконное использование такого типа, как выражениеC++ | незаконное использование структур в классах
Что может Я делаю ?
«Блок» - это тип, поэтому его нет. (точка) для него. 'Block.des.x' не является допустимым оператором. Или используйте 'this-> des.x' или просто' des.x'. – elmo