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

CodeBase

Treue Seele

  • »CodeBase« ist der Autor dieses Themas

Beiträge: 98

Wohnort: Österreich -> Salzburg

Beruf: Datenbank Entwickler

  • Private Nachricht senden

1

27.04.2011, 10:14

Objekte anlegen und freigeben aber wann ?

Hallo Leute,

ich habe eine Frage.

Und zwar habe ich einen ObjektManager der mir die Objekte in das Spiel lädt, bisher habe ich den Gamestate wann es gezeichnet werden soll immer im Objekt mit verspeichert. Mir gefällt diese Lösung aber nicht und ich bin gerade dabei das ich das umbaue. Ich habe mir überlegt einfach dei Objekte in meine Liste zu laden und alles was drinnen ist anzuzeigen. Damit aber das bei dem Richtigen gamestate angezeigt wird, müsste ich die Liste immer leeren und befüllen, damit die Aktuellen Objekte auch angezeigt werden können. Wenn ich nun zb. in meinem MainWindow bin und auf den Button Credits Drücke springt mir da Spiel zu diesem Gamestate. Da ich aber nun keine unterscheidung mehr habe auf welchem Gamestate welcher button angezeigt wird, hätte ich alle MainWindow buttons auch im Fenster Credits drinnen. Meine Idee war es nun die Ressourcen zu laden und in einem RessourcenManager zu verwalten, das habe ich. Lege ich nun einen neuen Button an hole ich mir vom RessourceManager die Refernz von dem Bild und setzte es. Soweit so gut, damit ich aber eben vermeide das meine Buttons überall angezeigt werden, müsste ich die Objekte vorher löschen und die neuen in die Liste laden. Das ist ja ein bisschen umständlich wenn ich jetzt zb. nur in das CreditFenster gehe dann habe ich da nur einen Text.

Damit ich das machen kann muss ich die Buttons zuerst erzeugen dann warten, dann drückt der Spieler Credits, Buttons löschen Textliste aufbauen, anzeigen, der User verlässt das Credits fenster, Texte entleeren, Buttons erzeugen und wieder anzeigen.

Ich hoffe ihr versteht was ich meine. Wie könnte ich das sonst lösen ? oder ist das eine gute Lösung ?

Ich denke mir halt, warum sollte ich objekte in meiner Liste behalten wenn diese ohnehin nicht angezeigt werden

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

27.04.2011, 10:36

Du musst die Objekte ja nicht jedesmal zerstören und neu erstellen, sondern lediglich in die Liste eintragen und von da entfernen. Du kannst also für jede "View" (Hilfe, Game usw.) eine eigene Liste halten, wo du die erstellten Objekte drin hast. Dann wenn du umschältst kopierst du einfach dijenigen Objekte aus der jeweiligen Liste in die aktive, welche für das anzeigen verantwortlich ist. Die Liste wird dann also immer wieder geleert und neu gefüllt, aber Objekte erstellen und zerstören tust du dann die dann nicht.

CodeBase

Treue Seele

  • »CodeBase« ist der Autor dieses Themas

Beiträge: 98

Wohnort: Österreich -> Salzburg

Beruf: Datenbank Entwickler

  • Private Nachricht senden

3

27.04.2011, 10:44

Hmm danke dir mal für den Input. Aber dann erzeuge ich ja extreme datenmengen oder nicht ? ich meine ich muss ja dann die Objekte doppelt verwalten, einmal in der GameState list und einmal in der Anzeige Liste.

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

4

27.04.2011, 10:57

Die Listen in den einzelnen States sollten nicht die kompletten Objekte beinhalten, sondern nur referenzen/zeiger

CodeBase

Treue Seele

  • »CodeBase« ist der Autor dieses Themas

Beiträge: 98

Wohnort: Österreich -> Salzburg

Beruf: Datenbank Entwickler

  • Private Nachricht senden

5

27.04.2011, 11:01

Hallo

ja danke das habe ich eh also ich lege mir einen Zeiger auf das neue Objekt an und speicher den in der liste, das habe ich schon so umgebaut am anfang hatte ich das nicht so da war immer eine Verzögerung drinnen wenn man über den Button fuhr jetzt geht das Flott ;). nachdem ich den RessourceManager angelegt habe und der mir die Refernz auf das Bild liefert geht es noch einen Ticken schneller. Ich bin am verbessern und lernen :)

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

6

27.04.2011, 11:54

Prinzipiell hast du dann die Zeiger natürlich doppelt, aber das ist kein Problem.

Werbeanzeige