Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

22.03.2013, 00:23

Ogre: Wie von überall auf den SceneManager zugreifen

Hallo leute

Nachdem ich mich nun ein wenig im ogre eingearbeitet habe, mithilfe von mirlixs buch, frage ich mich nun, wie schaffe ich es am besten auf denn scenemanager, den ich ja in der application klasse erstelle von überall zuzugreifen. Ich hatte schon die idee einer singleton klasse, oder einer statischen definition, dieser ansätze schreiben mir jedoch nicht sehr elegant.

Wie habt ihr dieses problem gelöst?

Gruß CodeSneak

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

22.03.2013, 00:45

Ich würd empfehlen, besser das eigentliche Problem zu lösen, nämlich dass du von überall drauf zugreifen willst... ;)

3

22.03.2013, 10:47

Wenn ich jetzt aber verschiedene klassen für verschiedene Objekte habe, wie sollen diese dann ihre entitys oder nodes erzeugen?

Mastermind

unregistriert

4

22.03.2013, 10:49

Ich würd empfehlen, besser das eigentliche Problem zu lösen, nämlich dass du von überall drauf zugreifen willst... ;)


Hast du schonmal mit OGRE gearbeitet? Da ist ungefähr alles ein Singleton, insbesondere die ganzen Manager soweit ich mich erinnere. Ein Design-Feldzug dagegen ist bei Ogre ziemlich sinnlos.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

5

22.03.2013, 10:50

Indem du dort, wo der Scenemanager benötigt wird, eine entsprechende Referenz auf diesen übergibst. Wenn du tatsächlich von überall drauf zugreifen willst, dann musst du dir die Frage stellen, wieso du den Scenemanager von vornherein Teil einer Klasse gemacht hast und keine globale Variable...

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

6

22.03.2013, 11:21

Arg, dot, stell nicht so merkwürdige Fragen. Die impliziert nämlich, dass eine globale Variable eine akzeptable Lösung wäre. ;)
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Mirlix

Supermoderator

Beiträge: 451

Beruf: Developer Advocate

  • Private Nachricht senden

7

22.03.2013, 11:30

Ich würde versuchen das nur wenige Klassen den SceneManager direkt benutzen und die meisten in ihrem Konstruktor einfach die schon erstellten Entities etc bekommen. Das macht es am Ende einfach sauberer, wenn es sich nicht vermeiden lässt übergibt einfach den SceneManager im Konstruktor.

Mastermind

unregistriert

8

22.03.2013, 13:36

Wusst ich es doch. OgreRoot ist ein Sigleton und es kann dir jeden beliebigen SceneManager geben. Und so ist es wohl auch gedacht.

http://www.ogre3d.org/docs/api/html/clas…77d9b6f2c09dc1a

Ob man das gut findet sei dahin gestellt.

Techie

Alter Hase

Beiträge: 717

Wohnort: Bayreuth

Beruf: Student | Hilfswissenschaftler in der Robotik

  • Private Nachricht senden

9

26.03.2013, 12:45

Wegen der eigentlichen Frage, du könntest auch einen Zeiger verwenden und diesen bzw. die Adresse in einer öffentlichen Struktur speichern
I write my own game engines because if I'm going to live in buggy crappy filth, I want it to me my own - Ron Gilbert

Werbeanzeige