Aktuelle Zeit: 22.12.2024, 19:46

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Ode dNearCallback funktioniert nicht
BeitragVerfasst: 17.05.2008, 13:54 
Offline
Benutzeravatar

Registriert: 17.02.2008, 14:08
Beiträge: 125
Hi,

ich habe vor kurzem angefangen mich mit ODE zu beschäftigen. Leider komm ich mit dieser Funktion nicht weiter:
dSpaceCollide (dSpaceID Space,void *data,&dNearCallback);
genauer: &dNearCallback

Ich habe das Tutorial "GettingStartedWithODE" in der Irrlicht wiki gelesen und gesehen das man die Funktion selber definieren muss. Leider will das nicht innerhalb einer Klasse funktionieren, wenn also ein funktionspointer auf die selbstgeschriebene Methode benutzt wird.

Ich kann/will aber die Funktion nicht global machen, weil darin private Attribute verwendet werden sollen.

Wie bewerkstellige ich jetzt einen solchen Pointer?

MfG
FTC

_________________
Cold-Death
Magnon


Nach oben
 Profil  
 
BeitragVerfasst: 17.05.2008, 15:11 
Offline
Moderator
Benutzeravatar

Registriert: 15.04.2007, 20:20
Beiträge: 505
Wohnort: Reelsen
Zitat:
Ich kann/will aber die Funktion nicht global machen, weil darin private Attribute verwendet werden sollen.

Mach dir eine Funktion, der du dann den Pointer auf die Klasse übergibst, und die dann die Memberfunktion aufruft.

_________________
Meine Gameengine :)
Bild


Nach oben
 Profil  
 
BeitragVerfasst: 20.05.2008, 20:07 
Offline
Benutzeravatar

Registriert: 17.02.2008, 14:08
Beiträge: 125
Ich bin ja schon in der Klasse drin. Im Mainloop.
Allerdings funktioniert es nicht wenn ich einen Pointer auf die Memberfunktion setze. Es gibt immer blödsinnige Fehler.
Wenn ich zb der Anweisung des Compilers folge und &MainApp::dNearCallback schreibe, sagt er ich solle nur &dNearCallback schreiben. Tu ich das geht das Theater von vorne los.

MfG

_________________
Cold-Death
Magnon


Nach oben
 Profil  
 
BeitragVerfasst: 20.05.2008, 20:24 
Offline
Moderator
Benutzeravatar

Registriert: 15.04.2007, 20:20
Beiträge: 505
Wohnort: Reelsen
joa, klar, ich weiß, was du machst :)
So hab ich das gemeint:

Code:
void C_callback(void *classptr)
{
((Class*)classptr)->callback();
}

[...]
dSpaceCollide(space, this, C_callback);

_________________
Meine Gameengine :)
Bild


Nach oben
 Profil  
 
BeitragVerfasst: 23.05.2008, 17:32 
Offline

Registriert: 16.01.2008, 12:31
Beiträge: 79
Das hier sollte Dir helfen.
http://www.newty.de/fpt/callback.html#static


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de