PDA

Visualizza la versione completa : [C/C++] Modificare valori di una struct tramite funzione


Razorblade
04-11-2008, 19:34
Ciao a tutti,
premetto che sono nuovo del linguaggio C, devo realizzare una funzione che mi modifichi dei valori di una struct. La seguente č una porzione del mio attuale codice:




typedef struct{
s32 x, y;
s32 vy;
s32 speed;
} Personaggio;

Personaggio ryu;

void MovePlayer(Personaggio sprite);

int main(int argc, char** argv){
while(1){
MovePlayer(ryu);
}
return 0;
}

void MovePlayer(Personaggio sprite){
sprite.x+=((Pad.Held.Right - Pad.Held.Left)*sprite.speed)<<8;
}


Pad.Held.Right e Pad.Held.Left sono delle funzionalitą legate alla libreria che sto utilizzando, e non sono quello il problema. Il problema č che OVVIAMENTE il valore x di ryu non viene modificato dalla funzione, il motivo so che c'entra con i puntatori ma non capisco come applicarli correttamente a questo codice.

Qualche aiuto?
Grazie

oregon
04-11-2008, 19:57
Qualcosa del genere




MovePlayer(&ryu);

void MovePlayer(Personaggio *sprite){
sprite->x+=((Pad.Held.Right - Pad.Held.Left)*sprite->speed)<<8;

MItaly
04-11-2008, 19:58
Basta passare la struttura tramite puntatore.


void MovePlayer(Personaggio * sprite){
sprite->x+=((Pad.Held.Right - Pad.Held.Left)*sprite->speed)<<8;
}



MovePlayer(&ryu);

Razorblade
05-11-2008, 11:08
Grazie a entrambi,
ha funzionato perfettamente!
Ciao

Loading