Enviar objeto de uma classe a outra

1. Enviar objeto de uma classe a outra

Alex Fernando Ferreira
staltux

(usa Slackware)

Enviado em 27/01/2009 - 04:16h

eu estou tentando alterar os valores da dstrect(SDL_Rect)
do objeto player apartir da classe Mapa...
mas parece que no lugar de enviar o objeto dstrect, estou enviando uma copia dele...pois as alterações feitas pela classe Mapa nao fazem efeito no objeto em questão...
quando faço isso em java funciona...
tentei enviar um ponteiro no lugar mas nao adiantou...
tentei enviar o propio objeto player...
mas nao deu pq a classe Player inclui a Mapa e a Mapa inclui o Player...dai vira um loop infinito...
resumindo minha duvida é o seguinte:

como eu posso modificar o valor de um objeto enviado como paramentro para uma outra classe? e oque eu estou fazendo errado ?
ja vi que tentar fazer C++ o que eu faço em java nao vai dar muito certo...
ai vai as classes nas quais eu estou trabalhando...
obs: removi os switch e tais pra postar só a parte que eu acho que importa pra nao ficar muito grande...
// Objeto.cpp

class Objeto {
public:
bool existe;
SDL_Rect dstrect;
SDL_Surface* img;
Objeto(void){
existe=false;
dstrect.x=1;
dstrect.y=1;
};
void ativar(void){
existe=true;
}
};

// Player.cpp

class Player: public Objeto{
public:
Player(void){
cout << " \n Dentro do player \n";
img = IMG_Load("img/player.png");
if (!img)
{
printf("Unable to load bitmap: %s\n", SDL_GetError());
};
// minimo 1
dstrect.x=1;
dstrect.y=1;
};
~Player(void){
//delete img;
};
void moverCima(){};
void moverBaixo(){};
void moverEsquerda(){};
void moverDireita(Mapa mapa){
cout << "\n player x=" << dstrect.x;
mapa.moverObjeto(dstrect,2);
};
void soltarBomba(){};
};

// e a parte que importa do Mapa.cpp

void moverObjeto(SDL_Rect dstrect,int direcao){
cout << "\n antes x=" << dstrect.x;
dstrect.x+=32;
cout << "\n depois x=" << dstrect.x;
}


  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts