Eu tenho uma classe chamada GameObject, nessa classe ela contem outros objetos tal como Player.hpp, Inimigo.hpp. Porém quando eu tento setar um valor especifico dentro do objeto Player, que esta dentro da classe GameObject, acaba por crashar o programa, talvez seja a forma como eu estou passando a função, mas n consigo identificar como.
Codigo que crasha:
if(objetoColisor.y < objetoColidido.y+objetoColidido.h
&& objetoColisor.y+objetoColisor.h > objetoColidido.y)
{
if(tipoColisor=='P' && tipoColidido=='W'){
objeto2->player->setGrounded(true); //Aqui esta o erro
}
}
Meu GameObject.hpp:
class GameObject{
public:
GameObject(SDL_Rect src,SDL_Rect dst,char x,SDL_Renderer* renderer);
~GameObject();
void updateObjeto();
void setPosition(int x,int y);
SDL_Rect getRectDst();
SDL_Rect getRectSrc();
SDL_Texture* getTexture();
void setTexture(SDL_Texture* textura);
char getTipo();
Player* player;
Walker* walker;
private:
SDL_Rect destination;
SDL_Rect source;
SDL_Texture* texturaObjeto;
char tipo;
void playerUpdate();
void inimigoUpdate();
SDL_Renderer* rendererObjeto;
Loader* carregar = new Loader();
};
Meu Player.hpp
class Player{
public:
Player();
~Player();
SDL_Rect updatePlayerDestination(SDL_Rect destination);
SDL_Rect updatePlayerSprite(SDL_Rect source);
void setGrounded(bool x);
private:
float vspeed;
float hspeed;
bool grounded;
float velocitySpeed=3;
};