Fórum Problema com POO C++ SDL2 #616551
23/08/2021
0
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
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)