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

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

11

10.12.2015, 20:38

Nicht jeder Enemy hat eine. Die Textur ist statisch... was... nicht so cool ist. Auch die Include-Hierarchie sollte dringend überarbeitet werden. Da wird quasi überall Enemy.hpp inkludiert, obwohl eigentlich die SFML-Includes die einzig wichtigen wären.
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]

12

11.12.2015, 05:57

Die Textur wird trotzdem immer geladen und eie alte nicht freigegeben.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

13

11.12.2015, 06:29

Das is wohl richtig, einen gewaltigen Memory-Leak hat er.
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]

14

12.12.2015, 13:14

Ok ich dachte ich hätte das so weit wie möglich umgangen. Was soll ich denn tun um das Memory Leak zu verkleinern?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

15

12.12.2015, 13:47

1) Mit Smart-Pointern wäre das nicht passiert
2) Ohne static wäre das nicht passiert
3) Einen bereits mit Heap-vollgestopften Pointer neu zu allokieren ohne ihn vorher zu prüfen, führt zu Problemen
4) Behebst Du 3 und deletest ihn vorher, hast Du kaputte Sprites
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]

16

12.12.2015, 13:51

Ist nicht das static dafür da das die Textur für jede Instantz gilt?

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

17

12.12.2015, 14:02

Ja. Gleichzeitig lädst du aber jedes Mal die Textur neu in den Heap, ohne die alte zu löschen.
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

18

12.12.2015, 14:03

Im Grunde schon, nur erstellst du die Texture bei jeder Instanzierung eines Objekts im Konstruktor neu, während die alte noch irgendwo rumliegt. Besser: Eine Klasse, welche Texturen verwaltet und zb alle Texturen am Anfang lädt. Das Enemy kann sich dann einen Zeiger auf eine bestimmte holen und dann verwenden. Zusatzaufgabe: vermeide das dabei das schlüsselwort static sowie die Verwendung von globalen Variablen.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

19

12.12.2015, 14:15

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]

20

12.12.2015, 14:20

Ok danke, dachte dass das so funktioniert in meinem Tutorial hat er das 1:1 so gemacht.

Werbeanzeige