Problema com POO C++ SDL2
Estou programando em SDL2, porém eu fiz uma classe onde acontece a colisão de objetos, em que no seus parâmetros ele precisa de 2 GameObjects(Um colisor, e o objeto colidido). Na classe GameObject que eu criei, os varios inimigos e até mesmo o jogador são considerados GameObject, com uma variavel chamada “Tipo” que detecta se ele é um Player,Um inimigo, Um inimigo diferenciado,etc. E baseado nisso o GameObject tem suas variações. Porém para as colisões funcionarem eu precisaria chamar a funçao de colidir dentro de um GameObject, e é ai que mora o problema, pois como vou colocar parametros de dois gameobjects que nem existem ainda nessa classe? Eu teria que ir no main.c e programar as colisões de cada um individualmente(o que possivelmente vai gerar muitas linhas de codigo). Seria possivel contornar essa situação?
Aqui é a função de Update caso a classe detecte que se trata de um player
Função de colisão em outra classe (ignorem que ainda n programei a colisaokk)
class GameObject{ public: GameObject(SDL_Rect src,SDL_Rect dst,SDL_Texture* textura,int x); ~GameObject(); void updateObjeto(); void setPosition(int x,int y); SDL_Rect getRectDst(); SDL_Rect getRectSrc(); SDL_Texture* getTexture(); unsigned short getTipo(); private: SDL_Rect destination; SDL_Rect source; SDL_Texture* texturaObjeto; unsigned short tipo; void playerUpdate(); void inimigoUpdate(); };
Aqui é a função de Update caso a classe detecte que se trata de um player
void GameObject::playerUpdate(){ colisao->updateColisao(GameObject* objeto1,GameObject* objeto2); }
Função de colisão em outra classe (ignorem que ainda n programei a colisaokk)
void Collision::updateColisao(GameObject* objeto1, GameObject* objeto2){ SDL_Rect colisor = objeto1->getRectDst(); SDL_Rect colidido = objeto2->getRectDst(); }
Dalton Lobato
Curtidas 0