Aktuelle Zeit: 12.05.2025, 21:52

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 25 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3  Nächste
Autor Nachricht
 Betreff des Beitrags: Re: Verschiedene Materialien
BeitragVerfasst: 14.01.2010, 14:09 
Offline

Registriert: 05.09.2007, 15:01
Beiträge: 103
Ah perfekt, jetzt kann ich schonmal den Namen des Materials in IrrEdit angeben und es wird auch richtig gespeichert.
So, ich hab jetzt aber nicht verstanden wie du das meinst wie ich den Node bzw. die Informationen da herraus bekomme und im Spiel verwenden kann.

Eigentlich müsste ich nur noch meine Node-Klasse in dem Code von meinem Spiel unterbringen und dann eben die Childs des getroffenen Objekts durchsuchen, nach dem Node der den material Namen enthält, oder?

Aber wie schaff ich es dass der Node beim Laden der Szenen Datei in irrlicht automatisch hinzugefügt wird, sodass ich einfach nur noch nach dem dementsprechenden Child mit dem Material suchen muss?


//Edit:

So, hab es jetzt geschafft dass der SceneNode mit seinen Informationen in meinem Spiel über die IrrLicht Szenen Datei geladen wird. Einziges Problem das ich jetzt noch habe: wie finde ich diesen Node? Ich bekomm beim Schuss den Parent von dem MaterialNode, wie kann ich jetzt das dementsprechende Child finden damit ich an die Informationen des Nodes ran komme?

_________________
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Verschiedene Materialien
BeitragVerfasst: 15.01.2010, 07:38 
Offline
Benutzeravatar

Registriert: 16.10.2007, 07:56
Beiträge: 229
Wohnort: Regensburg
Ich benutz zwei Wege, um an die Nodes zu kommen:

1. den Szenenbaum nach dem NodeType durchsuchen
2. einen Manager als Singleton, bei dem sich alle Nodes registrieren.

In meinem Fall läuft das aber anders rum: zur Kollisionsabfrage benutz ich ja ODE, und die liefert mir meinen eigenen Node und nicht den MeshSceneNode zurück. Wenn du sicherstellst, dass dein Node direktes Child von dem Mesh ist, dann sollte das durchsuchen recht schnell gehen. Ich hab zwei Methoden eingebaut, einmal "getAncestorOfType" und "getChildOfType". Die durchsuchen dann entweder die Parent Nodes bis zum Root oder alle Childs und liefern jeweils den ersten vom gewünschen Typ zurück. Kommt drauf an, wie groß deine Szenen sind, bei mir ist die Performance auf jeden Fall gut.

_________________
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Verschiedene Materialien
BeitragVerfasst: 15.01.2010, 13:39 
Offline

Registriert: 05.09.2007, 15:01
Beiträge: 103
Hab was besseres aufm Englischen Forum gefunden ;) danke trotzdem und nochmals vielen dank für deine Hilfen ^_^

_________________
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Verschiedene Materialien
BeitragVerfasst: 16.01.2010, 15:27 
Offline
Benutzeravatar

Registriert: 16.10.2007, 07:56
Beiträge: 229
Wohnort: Regensburg
Echt? Post mal einen Link, will auch lesen ;)

_________________
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Verschiedene Materialien
BeitragVerfasst: 16.01.2010, 16:15 
Offline

Registriert: 05.09.2007, 15:01
Beiträge: 103
http://irrlicht.sourceforge.net/phpBB2/ ... hp?t=36926

Ich glaube das ist das was du unter 1. geschrieben hast :D also
Zitat:
1. den Szenenbaum nach dem NodeType durchsuchen

_________________
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Verschiedene Materialien
BeitragVerfasst: 17.01.2010, 17:42 
Offline

Registriert: 05.09.2007, 15:01
Beiträge: 103
Sorry für doublepost aber ich hab hier grade einen unerklärlichen Fehler ._.

Ich hab jetzt schon 2 PlugIns erstellt welche einwandfrei in IrrEdit laufen, einer der beiden PlugIns wird auch schon erfolgreich in das Spiel geladen und funktioniert auch, doch wenn ich jetzt mein 2tes PlugIn in mein Spiel einbringen will, dann kommt immer dass dieser SceneNodeTyp nicht existieren würde... die Dateien von dem SceneNode wurden auch erfolgreich kompiliert und richtig includiert und der andere SceneNode, welcher überall funktioniert, wird in der selben Funktion auch erstellt und dort kommt kein Fehler. Ich weiß nicht woran das liegen könnte.

_________________
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Verschiedene Materialien
BeitragVerfasst: 18.01.2010, 07:23 
Offline
Benutzeravatar

Registriert: 16.10.2007, 07:56
Beiträge: 229
Wohnort: Regensburg
Hmm ... das könnte alles Mögliche sein. So auf die schnelle würde ich mal folgendes überprüfen:

- falls die unterschiedlichen Nodes in 2 SceneNodeFactories erzeugt werden: sind wirklich Beide registriert?
- Liefert die SceneNodeFactory die richtigen Node-IDs zurück? (die Funktionen "getCreatableSceneNodeTypeCount", "getCreateableSceneNodeTypeName", "getCreateableSceneNodeTypeName" und "getCreateableSceneNodeType" überprüfen)
- funktionieren die beiden "addSceneNode" Methoden so, wie sie sollen?

Ich weiß nicht, ob das was hilft, aber sowas ohne den Code rausfinden ist nicht einfach.

_________________
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Verschiedene Materialien
BeitragVerfasst: 18.01.2010, 13:13 
Offline

Registriert: 05.09.2007, 15:01
Beiträge: 103
Das Problem is ja, dass es schon beim kompilieren zu dem Fehler kommt, wo der Compiler sagt: "BlabLAblaSceneNode was not declared in this scope" obwohl alles richtig includiert wurde. Ich hab auch nicht viel geändert an dem zweiten SceneNode, ich hab lediglich den Namen der Klasse umgeändert und ein paar neue Funktionen eingefügt, aber die Hauptfunktionen und die Klasse hab ich nicht (nur beim einfügen der Funktionen) verändert. Es kommt auch kein Fehler wenn ich die Include Dateien von dem Node Kompilieren lasse, nur eben wenn ich den Node erstellen will bzw die NodeFactory.
Wenn du willst kann ich dir die Includes mal per PM schicken dass du dir das genauer anschauen kannst.

_________________
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Verschiedene Materialien
BeitragVerfasst: 19.01.2010, 07:22 
Offline
Benutzeravatar

Registriert: 16.10.2007, 07:56
Beiträge: 229
Wohnort: Regensburg
Aso ... beim Kompilieren. Vielleicht liegts ja an den #ifdef-Sachen. Am Anfang werden immer defines und ifdefs deklariert, um zu verhindern, dass eine Klasse zweimal deklariert wird. Sieht ungefähr so aus:

Code:

#ifndef _MY_NEW_SCENE_NODE
  #define  _MY_NEW_SCENE_NODE

class myNewSceneNode {
  ...
};

#endif



wenn zweimal dasselbe #defined wird, dann überspringt der Compiler die zweite Klassendeklaration. Falls es das nicht ist kannst du mir den Code ja mal schicken.

_________________
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Verschiedene Materialien
BeitragVerfasst: 19.01.2010, 13:33 
Offline

Registriert: 05.09.2007, 15:01
Beiträge: 103
Oh man ich könnte mich selber schlagen :D Ich hab beim umbenennen der Includes vergessen
in der Header Datei
Code:
#ifndef _MY_NEW_SCENE_NODE
  #define  _MY_NEW_SCENE_NODE


An den Dateinamen anzupassen ;)

Nochmals vielen dank für deine Hilfe :>

_________________
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Verschiedene Materialien
BeitragVerfasst: 20.01.2010, 07:16 
Offline
Benutzeravatar

Registriert: 16.10.2007, 07:56
Beiträge: 229
Wohnort: Regensburg
Ich will gar nicht wissen, wie viele Stunden ich vor dem Kasten gesessen bin und im Endeffekt diesen Fehler gefunden hab ;) .

_________________
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Verschiedene Materialien
BeitragVerfasst: 20.01.2010, 08:57 
Offline
Newsposter
Benutzeravatar

Registriert: 12.03.2007, 10:42
Beiträge: 338
Wohnort: Berlin
warscheinlich zu viele, hab auch teilweise stunden vor der kiste gesessen nur um zu merken das mir bei php ne klammer fehlt xD


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 25 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3  Nächste

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 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