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

eXpl0it3r

Treue Seele

Beiträge: 386

Wohnort: Schweiz

Beruf: Professional Software Engineer

  • Private Nachricht senden

11

16.08.2012, 10:48

Mit etwas Code könnte man ja evtl. noch helfen...
Ich versuch mich an dem code ->
http://www.gamefromscratch.com/page/Game…ion-Part-4.aspx
Suchst du mal auf der seite nach dem code von der Game.cpp, dann findest du dort am schluss eben diese Zeilen die ich nich raff... warum sind die da? warum helfen genau diese Zeile gegen etwas was ich eh nciht brauch? alles bissel verwirrend
Du verstehst evtl. nicht was statische Variabeln sind. Statische Variabeln sind Variabeln, welche verwendet werden können ohne dass die Klasse instanziert wird. Sie sind ausserdem durchgehend überalle Klasseninstanzen gleich. Die paar letzten Zeilen im Game.cpp Listing initializieren nun diese statischen Variabeln. Das Ganze ist bestimmt besser in deinem Spieleprogrammierer Buch erklärt, oder sonst musst du halt noch etwas googeln. ;)

Jo soweit komm ich ja klar, ich weis ja wie ich den Fehler wegmach, aber irgendwie find ich das ziemlich ne dumme idee etwas zu brauchen was man gar nicht braucht?
Wieso hast du das Gefühl, dass du diese Variabeln nicht brauchst? Sie managen die ganzen State-Changes etc.
Blog: https://dev.my-gate.net/
—————————————————————————
SFML: https://www.sfml-dev.org/
Thor: http://www.bromeon.ch/libraries/thor/
SFGUI: https://github.com/TankOs/SFGUI/

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

12

16.08.2012, 15:57

Headerdateien werden nicht direkt kompiliert. Sie werden nur in die .cpp Dateien kopiert (über die include Direktive) und so indirekt kompiliert. Der Code existiert also meistens in mehr als einer .cpp Datei. Bei Deklarationen oder Klassendefinitionen ist das kein Problem. Eine Variablendefinition entspricht der "Reservierung" von Speicherplatz. Weil globale oder statische Variablen nur einmal im ganzen Programm existieren, dürfen sie auch nur einmal definiert werden. Würdest du die Definition in den Header schreiben, würde sie in mehrere .cpp Dateien kopiert werden und du hättest eine Mehrfachdefinition.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Flutschi

Treue Seele

  • »Flutschi« ist der Autor dieses Themas

Beiträge: 90

Wohnort: Schweiz

  • Private Nachricht senden

13

16.08.2012, 22:27

Headerdateien werden nicht direkt kompiliert. Sie werden nur in die .cpp Dateien kopiert (über die include Direktive) und so indirekt kompiliert. Der Code existiert also meistens in mehr als einer .cpp Datei. Bei Deklarationen oder Klassendefinitionen ist das kein Problem. Eine Variablendefinition entspricht der "Reservierung" von Speicherplatz. Weil globale oder statische Variablen nur einmal im ganzen Programm existieren, dürfen sie auch nur einmal definiert werden. Würdest du die Definition in den Header schreiben, würde sie in mehrere .cpp Dateien kopiert werden und du hättest eine Mehrfachdefinition.
Oh wow vielen dank, ich glaube so langsam komm ich draus warum das so steht...

naja, ich versuch ja jetzt eh wegzukommen von den Statischen dingern, ne idee warum der da statische variablen benutzt hat?
♥ SFML 2.0 Visual Express 2010 ♥

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

14

16.08.2012, 22:29

Weil es einfacher ist als sie an die nötigen Stellen zu übergeben. Pure Faulheit und/oder schlechtes Design also.
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]

Flutschi

Treue Seele

  • »Flutschi« ist der Autor dieses Themas

Beiträge: 90

Wohnort: Schweiz

  • Private Nachricht senden

15

16.08.2012, 22:32

Weil es einfacher ist als sie an die nötigen Stellen zu übergeben. Pure Faulheit und/oder schlechtes Design also.
ah, oki dann is das tutorial eigentlich scheisse...
gut zu wissen :D
♥ SFML 2.0 Visual Express 2010 ♥

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

16

16.08.2012, 22:35

Das wurde Dir ja auch schon vorher von jemand anderem gesagt.
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]

Werbeanzeige