Suchergebnisse
Suchergebnisse 1-15 von insgesamt 15.
Ok.. dann versuche ich mal zusammen zufassen Wie vorher Gibt mir die Möglichkeit der Ausgabe, allerdings keine Umleitung, da es keine "zentrale" Logstelle gibt.Operatorenüberladung Dafür müsste ich jeder Klasse einen "Buffer" erstellen, der dann bei Anwendung des Operators ausgegeben wird. Gibt mir nicht einfach die Möglichkeit die Ausgabe umzuleiten. Finde ich sehr umständlich und unnötig, Operator wird ja eigt nicht gebraucht..Aspect-Orientierte-Programmierung Funktionalität und Logging werden...
Zitat von »Jogge« [Offtopic] Ich habe mal was über Aspect-Orientierte-Programmierung und Feature-Orinetierte-Progragrammierung gelesen. Dort wurde zum Beispiel ein Einsatzgebiet von AOP das Logging genannt! Vlt. bringt Dich das weiter: http://www.aspectc.org/ Du musst nichtmal deine Klasse, welche du Loggen möchtest, anfassen! Aber ich habe da auch (noch) keine Ahnung! Vlt. kann man damit etwas rumprobieren unso, wenn der Aufwand nicht zu groß ist! [/Offtopic] Ich habs mir mal angeschaut. Die e...
Sicherlich.. es ist nur mein Ziel mit Klassen richtig "umgehen" zu lernen (neben der hauptinteresse der spieleprogrammieren lernen).. Und dann möchte ich mich halt von klein nach groß arbeiten, also selbst ein "kleines Projekt" sauber zu programmieren um dann Schritt für Schritt Anspruchsvolles zur machen.. Das Observer Pattern würde funktionieren und mir auch die Umleitung in eine Datei ermöglichen.. Allerdings müsste ich dann auch eine BasisKlasse erstellen; Anscheinend komm ich da wirklich ni...
Nein hab ich nicht. Ich habe ein anderes Buch über Spieleentwicklung mit DirectX, mittlerweile programmiere ich hauptsächlich unter Linux.. Aber ok.. dann muss ich mich nicht wundern
Zitat von »BurningWave« Du machst es auch viel zu kompliziert. Schau dir mal an, wie Breakanoid aufgebaut ist. Man muss nicht immer für jeden Mist eine eigene Klasse machen. Meinst du dein eigenes? unter Breakanoid find ich nur das, was allerdings mit einem GameMaker erstellt wurde..
Zitat von »Deviloper« http://www.parashift.com/c++-faq-lite/in…t.html#faq-15.8 Das setzt aber doch dann voraus, dass jede Klasse einen internen "Nachrichten-Buffer" hat, der dann mit dem Klassennamen ausgegeben wird? C-/C++-Quelltext 1 2 3 4 5 6 7 8 void Class::DoStuff() { m_Buffer = "Hallo"; cout << *this; } std::ostream& operator<< (std::ostream& o, const& Class foo) { cout << foo.m_Name << ": " << foo.m_Buffer; }
Zitat von »dot« Wenn das passiert dann spiegelt dein Code nur wider dass du zuviele Abhängigkeiten hast. Wie meinst du zu viele Abhängigkeit? Ist das Klassensystem nicht gut genug geplant oder wie?
Zitat von »Deviloper« Entsprechend halt für deine Objekte nen std::ostream operator überladen und gut ist Wie genau stellst du dir das Operatoren Überladen vor? An sich hört sich Idee nämlich ziemlich gut an..
Weil ich dann befürchte das ich riesige Funktionsparameterketten erzeugen muss; Weil die und die Funktion die Referenz benötigt muss die aufrufende Funktion die Referenzen ja auch übergeben bekommen. Wenn das ganze dann in einer Funktion mehrmals auftritt..
Was für Alternativen gibt es denn noch? Globale Variablen scheiden aus --> gleiche wie Singleton Was mir noch einfällt wäre jedes Mal eine Referenz zu übergeben (was ich ja eigt vermeiden wollte); oder in der Klasse eine statische Referenz definieren, die dann einmal für alle Klassen/Funktionen genutzt wird? Gäbe es noch andere Möglichkeiten?
Gäbe es denn eine Möglichkeit dies als Singleton zu implementieren? Ich weiß nämlich nicht wie ich den Namen der Klasse "ins Spiel" bringen soll.. Bis jetzt habe ich verstanden, dass es sich dabei um die OOP-Alternative zu globalen Variablen handelt. Stimmt es, dass ich nun zu dem Grundgerüst (das man überall findet) jetzt seine Funktionen hinzufügt, oder habe ich das falsch verstanden? C-/C++-Quelltext 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 class Singleton { public: static Singleton* G...
Ok.. ich poste mal die BaseClass, dann wird das hoffentlich alles klar C-/C++-Quelltext 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 class BaseClass { private: // Saves whether currently STAT msgs are printed static bool StatusPrint; // Name of class string m_Name; protected: // Set name void SetName( string name ); // Writes msg an normal INFO msg to screen void Debug( string msg ) const; // Writes msg an STAT msg to screen; last indicates whether procedure completed void Status( string m...
Also.. zuerst einmal zur Loggen: Ich muss gestehen das mir der Begriff Singleton nicht geläufig ist; Werde mich mal einlesen, nach der allgemeinen Beschreibung würde ich sagen dass das auch für die Game-Class nützlich wäre.. Die Frage nun warum ich auf die BaseClass ist der Gedanke dass ich gerne den Herkunftsort der Nachricht mit geloggt hätte; also jede Klasse einen offiziellen "Namen" braucht. Und um nicht in jeder Klasse C-/C++-Quelltext 1 2 3 4 5 6 7 class XY { string m_Name; } void XY::DoS...
Hallo allerseits, um meinem Ziel Spiele zu programmieren näher zu kommen hab ich mich entschlossen mal einen Breakout Klon zu programmieren. Ich hatte mir im Vorfeld folgenden Klassenaufbau überlegt (wer nicht lesen möchte kann sich auch das Bild im Anhang anschaun ): es existiert eine zentrale Game Klasse, die das Spiel managet. Sie nutzt die Klassen PlayManager (die das aktive Spiel verwaltet), MenuManager (die sichs ums Menu kümmert) und den EditorManager (die wie der Name schon sagt einen Ed...
Welche Version benutzt du? Bei mir muss ich immer "#include <SFML/Graphics.hpp>" eingeben, ansonsten lässt sich das ganze nicht compilen. Aber da es bei dir anscheinend trotzdem funkt, ist das wohl nicht die Ursache.. Beim Linken müssen soweit ich weiß nicht nur die Graphicslib gelinkt werden sondern auch auch System und Window gelinkt werden, und zwar in spezieller Reihenfolge ( Zum Nachlesen; letzte Absätze von "Compiling your first SFML program" ) Ansonsten: Was meldet denn die Konsole? Iwelc...