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

11

04.05.2017, 07:17

Na mit dem ganzen unsicheren Gefrickel ist das ja auch kein Wunder. Benutze Container wie vector und string, smartpointer und gucke dir size_t sowie nullptr an. Halte dich bloß von solchen 'Hilfsmakros' fern die brauchst du bei genannten Dingen eh nicht.

Was ist an einer selbstprogrammierten Vektorklasse so schlimm? Warum sind chars unsicher? Die verwende ich schon mein ganzes Leben und es gab nie Probleme. Wenn du so viel gegen den Code von David Scherfgen hast, schreib eine eigenen TriBase, mit der mein Fehler nicht passiert, da das einzige, was ich gecodet habe ist die eine Funktion, die die Effekte austauscht. Da ich noch Anfänger bin wäre ich froh, wenn du mir einen "Mustercode" zeigen könntest.
Albert Einstein sagte: "2 Stunden mit einem netten Mädchen fühlen sich an wie 20 Minuten, 20 Minuten auf einem heißen Ofen fühlen sich an wie 2 Stunden. - Das ist Relativität"

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

12

04.05.2017, 07:22

Wo soll ich den Breakpoint setzen?
Genau in der Zeile, wo dir der Debugger das Problem anzeigt.

Das Problem entsteht ja runtime u:d da bleibt das Programm sowieso stehen.
Klar, aber erst beim ZWEITEN Aufruf, wenn das Problem auftritt. Du sollst ja beim ersten *und* beim zweiten anhalten, um zu sehen, wieso es doppelt gelöscht wird und woher die Aufrufe stammen. Wahlweise musst du eben alle Stellen durchschauen, wo dieses Delete benutzt wird, ohne dass dabei der... globale (?) Zeiger auf nullptr gesetzt wird.

Bezüglich Mustercode: Auch David wird wohl zugeben, dass sein Code nicht mehr aktuellen Standards entspricht. Sonst hätte er std::vector (das ist *kein* Äquivalent zu Vector2D oder VectorD oder sowas, sondern eine Art dynamischer Array!), std::string, std::unique_ptr und weitere solcher Sachen verwendet. (size_t ist hier allerdings kein gutes Beispiel, unsigned Typen bringen mehr Probleme als Nutzen)
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]

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »BlueCobold« (04.05.2017, 07:27)


Schrompf

Alter Hase

Beiträge: 1 470

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

13

04.05.2017, 07:47

(size_t ist hier allerdings kein gutes Beispiel, unsigned Typen bringen mehr Probleme als Nutzen)


Das ist nur seine persönliche Meinung. Ansonsten aber Zustimmung. a) Nimm Standard-Klassen. b) Nimm den Debugger.
Häuptling von Dreamworlds. Baut aktuell an nichts konkretem, weil das Vollzeitangestelltenverhältnis ihn fest im Griff hat. Baut daneben nur noch sehr selten an der Open Asset Import Library mit.

14

04.05.2017, 08:12

Bezüglich Mustercode: Auch David wird wohl zugeben, dass sein Code nicht mehr aktuellen Standards entspricht. Sonst hätte er std::vector (das ist *kein* Äquivalent zu Vector2D oder VectorD oder sowas, sondern eine Art dynamischer Array!), std::string, std::unique_ptr und weitere solcher Sachen verwendet. (size_t ist hier allerdings kein gutes Beispiel, unsigned Typen bringen mehr Probleme als Nutzen)

Dann wäre es toll, wenn sich irgendjemand darum kümmern würde, den ganzen Code wieder auf Vordermann zu bringen.

Klar, aber erst beim ZWEITEN Aufruf, wenn das Problem auftritt. Du sollst ja beim ersten *und* beim zweiten anhalten, um zu sehen, wieso es doppelt gelöscht wird und woher die Aufrufe stammen. Wahlweise musst du eben alle Stellen durchschauen, wo dieses Delete benutzt wird, ohne dass dabei der... globale (?) Zeiger auf nullptr gesetzt wird.

Vor dem Fehler passen ja alle Werte. Der Fehler passiert in der Exit-Funktion, und dort kann ich keine Breakpoints setzen, da diese laut VS nicht erreicht werden können (Weil dort der Fehler ist)
Albert Einstein sagte: "2 Stunden mit einem netten Mädchen fühlen sich an wie 20 Minuten, 20 Minuten auf einem heißen Ofen fühlen sich an wie 2 Stunden. - Das ist Relativität"

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

15

04.05.2017, 08:35

Das ist nur seine persönliche Meinung.
Das ist wohl so, weil ich generell meine Meinungen präsentiere und nicht die aller anderen. Aber ich weiß, das muss man im Internet immer dazu sagen.
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]

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

16

04.05.2017, 22:15

Bezüglich Mustercode: Auch David wird wohl zugeben, dass sein Code nicht mehr aktuellen Standards entspricht. Sonst hätte er std::vector (das ist *kein* Äquivalent zu Vector2D oder VectorD oder sowas, sondern eine Art dynamischer Array!), std::string, std::unique_ptr und weitere solcher Sachen verwendet. (size_t ist hier allerdings kein gutes Beispiel, unsigned Typen bringen mehr Probleme als Nutzen)

Absolut richtig - ich war jung, naiv und unerfahren :whistling: ...

17

05.05.2017, 06:30

Bezüglich Mustercode: Auch David wird wohl zugeben, dass sein Code nicht mehr aktuellen Standards entspricht. Sonst hätte er std::vector (das ist *kein* Äquivalent zu Vector2D oder VectorD oder sowas, sondern eine Art dynamischer Array!), std::string, std::unique_ptr und weitere solcher Sachen verwendet. (size_t ist hier allerdings kein gutes Beispiel, unsigned Typen bringen mehr Probleme als Nutzen)

Absolut richtig - ich war jung, naiv und unerfahren :whistling: ...

Das wäre ein Grund mehr, dass due den Code mal auf Vordeemann bringen wüedest.
Albert Einstein sagte: "2 Stunden mit einem netten Mädchen fühlen sich an wie 20 Minuten, 20 Minuten auf einem heißen Ofen fühlen sich an wie 2 Stunden. - Das ist Relativität"

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

18

05.05.2017, 06:38

Ehrlich? Das Buch ist jetzt 14 Jahre alt (Das ist in IT-Jahren unfassbar lange, da gab's noch nicht mal Smartphones!) und er verdient damit noch genau wie viel? Ich finde sein fortdauernder Support für aktuelle Compiler-Versionen (und dieses Forum übrigens) ist mehr, als man von jedem anderen Buch je sehen wird oder überhaupt von ihm erwarten sollte. Jetzt auch noch zu verlangen, dass er den gesamten Code überarbeitet, ist aus meiner Sich schon reichlich unangebracht.
Niemand kann etwas dafür (auch wenn David sich sicher freut), dass du ein altes Buch gekauft hast und auf dieser dort nur als Beispiel (!) implementierten Engine arbeitest, um daraus ein Spiel zu machen. Modernere Bücher und Engines gibt's ja nun doch genug.
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]

ByteJunkie

Alter Hase

Beiträge: 891

Wohnort: Deutschland

Beruf: Softwareentwickler

  • Private Nachricht senden

19

05.05.2017, 08:39

Hey Patrick,

Du bist nicht allein. ;) Für den Einstieg ist es bestimmt nicht verkehrt. Nur solltest Du Dich, da Du noch jung bist, dann allerdings weiter entwickeln. ;)
Mach was Du nicht lassen kannst und lass was Du nicht machen kannst. ;)

20

05.05.2017, 16:14

Ehrlich? Das Buch ist jetzt 14 Jahre alt (Das ist in IT-Jahren unfassbar lange, da gab's noch nicht mal Smartphones!) und er verdient damit noch genau wie viel? Ich finde sein fortdauernder Support für aktuelle Compiler-Versionen (und dieses Forum übrigens) ist mehr, als man von jedem anderen Buch je sehen wird oder überhaupt von ihm erwarten sollte. Jetzt auch noch zu verlangen, dass er den gesamten Code überarbeitet, ist aus meiner Sich schon reichlich unangebracht.
Niemand kann etwas dafür (auch wenn David sich sicher freut), dass du ein altes Buch gekauft hast und auf dieser dort nur als Beispiel (!) implementierten Engine arbeitest, um daraus ein Spiel zu machen. Modernere Bücher und Engines gibt's ja nun doch genug.

Ich meinte damit eigentlich, dass irgendjemand, der Lust hat, das machen könnte, eben, weil es noch immer Leute gibt, die damit programmieren.

Eventuell werde ja sogar ich das machen, da mich sowieso interressiert, wie man so etwas großes git managet.

Wenn jemand einen guten Vorschlag für eine gute Engine (neuester Stand, C++, DirextX + Komponenten, gute Dokumentation, großes Forum) hat, bin ich auch gerne bereit umzusteigen.
Albert Einstein sagte: "2 Stunden mit einem netten Mädchen fühlen sich an wie 20 Minuten, 20 Minuten auf einem heißen Ofen fühlen sich an wie 2 Stunden. - Das ist Relativität"

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Patrick Z.« (05.05.2017, 16:21)


Werbeanzeige