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

idontknow

unregistriert

111

06.12.2009, 21:34

Zeig mal die Implementierung der beiden Funktionen :)
(RenderPoint/Line)

112

06.12.2009, 22:34

Es ist doch alles in der Zip die ich hochgeladen hab drin?
@Laguna: Was ist Doxygen?
Metal ist keine Musik sondern eine Religion.

113

06.12.2009, 22:36


idontknow

unregistriert

114

06.12.2009, 22:40

Wenn du das ganze halbwegs bruachbar machen willst musst du unbedingt implementieren:

-Farbe (sehr wichtig!)
-Zeichnen von Primitiven (automatisch, annäherung!)
(Punkt, Linie, Rechteck, Dreieck, Kreis, Trapez?)
-Füllen von Primitiven
-besondere Render Stats z.B. nur die Außenlinie oder, vllt. gepunktet...
-zeichnen über Winkel Angaben (z.B. du gibs für die Linie einen Startvektor an, eine Länge un einen Winkel (z.B. 90°) dann würde er die Linie senkrecht zeichnen!!)

mfg

Haxx0r

Treue Seele

Beiträge: 209

Wohnort: Da!

Beruf: Rebell mit aktivem Lebensstil

  • Private Nachricht senden

115

07.12.2009, 00:21

Habe das Paket mal runtergeladen.

2DVector.h:
-Warum wird im default-ctor nichts initialisiert?
-"_" steht normalerweise für eine Präprozessoranweisung.
-Warum eine Extra-Klasse, wenn du eh keine Operatorenüberladung implementiert hast?
-Sind mit deinem Renderer auch float-Anweisungen möglich? Falls ja, mach aus der Klasse eine Templateklasse.

KonsolenRenderer.cpp:
-Erstmal: Warum Englisch-Deutsch-Mischmasch?
-Warum eine 2 dimensionale Parameterliste, wenn du doch eine Vektorklasse hast?
-Soweit ich weiß ist COORD eine einfache Struktur, also kann man zur Vereinfachung auch COORD = { X, Y }; schreiben.

KonsolenRenderer.h:
-Der typedef ist völlig unnötig sowie nichtssagend.
-Woher soll der spätere Endbenutzer wissen, was KRFunktion ist?
-Wieder sinnlose Kommentare.

LineRenderer.cpp:
-Wieder unschlüssige Variablen.
-Nimm als Parameter eine Instanz deiner Vektorklasse.

LineRenderer.h:
-Selbiges wie in LineRenderer.cpp.

objekt.h:
-Warum kleiner Dateiname?
-Warum hast du hier die Includes für die Standard-Libraries wenn du doch eine "... AllIncludes.h"-Datei hast?
-DeletObjekt brauchst du nicht, es sei denn du möchtest Objekte während der Laufzeit löschen. Ansonsten macht das der dtor.
*EDIT*
-Die beiden Methoden sollten konstant sein, weil nichts an der Instanz verändert wird (und das wahrscheinlich auch so bleiben wird).

Gesamt:
-Versuche abgekapselt zu programmieren.
-Packe deine verschiedenen Codesegmente in Klassen.
-Versuche einheitlich zu bleiben, sprich nicht verschiedene Bezeichner zu benutzen (habe hier und da mal X und x gesehen).
-Vernünftige Kommentare, also nicht beschreiben was da passiert, sondern wie. Kommentare wie "//Die Koordinaten" braucht kein Schwein, weil der Code selbstsprechend ist.
-Nutze Includeguards.

116

07.12.2009, 13:41

2DVector.h:
-Die Operatoren bin ich grad dabei nur hat es da zwischen den Dateien immer gecrasht. Ich mach des aber schon noch.
-Nein es sind keine float Anweisungen möglich. Warum auch?

KonsolenRenderer .cpp/.h:
-Ja das mit dem Denglisch bin ich schon am überarbeiten
-des gotoxy werd ich rausschmeißen da ich das nicht mehr brauch. Ich brauchte das als ich noch mit "cout" gearbeitet hab.
-KRFunktion wird durch "void" ersetzt. Ich hab des deshalb gemacht weil KRFunktion mal ein enum war das mir aber dann später als sinnlos aufgefallen ist.

LinerRenderer.h/.cpp
-Die Variablen werd ich in der ganzen lib dann klein schreiben

objekt.h
-Des werd ich für den Anfang lassen weil ich des nicht brauch
-Später werd ichs dann überarbeiten. Andere sachen sind erstmal wichtiger

Gesamt:
-Was sind includeGuards?
-Kommentare werden überarbeitet
-Was meinst du mit abgekapselt Programmieren?

@Idontknow: Wieso sollte ich mit Winkeln arbeiten?
Metal ist keine Musik sondern eine Religion.

117

07.12.2009, 14:14

Zitat

-Was sind includeGuards?


Das sind Dinge, die man wissen soll, wenn man eine Bibliothek schreiben will.

http://en.wikipedia.org/wiki/Include_guard
Ps: Google Hilft

idontknow

unregistriert

118

07.12.2009, 14:27

Winkel -> Linien zeichnen? z.B. Diagonalen? Wie sonst? wenn du das schon machen solltest, kann man den winke direkt selebr bestimmen! (diagonal wäre 45°)

Datenkapselung = zugriff nur auf das worauf man zugrioff haben muss als nutzer der lib (private/public)

119

07.12.2009, 14:34

1. Achso ich wusste gar nicht das die #ifdef #if #ifndef #endif Include Guards heißen :oops:
2.Ok ich geb zu ich bin grad n bisschen neben der Spur. :D
Metal ist keine Musik sondern eine Religion.

Haxx0r

Treue Seele

Beiträge: 209

Wohnort: Da!

Beruf: Rebell mit aktivem Lebensstil

  • Private Nachricht senden

120

07.12.2009, 14:35

Zitat

Warum auch?

Gegenfrage: Warum nicht? Hätte doch sein können das mit float-Werten gerendert werden können.

Zitat

KRFunktion wird durch "void" ersetzt.

Nicht ganz, typedef erlaubt eine komplette Typenneudefinierung, sodass neue Instanzen von diesem Objekt gebaut werden können.

Zitat

Ich hab des deshalb gemacht weil KRFunktion mal ein enum war das mir aber dann später als sinnlos aufgefallen ist.

"KRFunktion" ist genau so sinnlos (;

Zitat

Später werd ichs dann überarbeiten. Andere sachen sind erstmal wichtiger

Sowas würde ich dir nicht raten. Ich würde einfach mal behaupten das du noch zu unfähig bist um vernünftiges Coderefactoring durchzuführen ;)

Zitat

Was sind includeGuards?

Includeguards gewährleisten, dass Headerfiles nicht mehrfach eingebunden werden. Sollte also in keinem Header fehlen.

Zitat

Was meinst du mit abgekapselt Programmieren?

Naja, das du eben so programmieren sollst, dass die verschiedenen Klassen (noch Funktionen) nicht voneinander abhängig sind. Und lieber mehrere kleine Klassen als eine gigantische.

Ich hoffe du siehst das als Hilfe und nicht als Runtermachung.

EDIT:

Zitat

Ok ich geb zu ich bin grad n bisschen neben der Spur.

Nein, du hast nur zu wenig Ahnung und bist daher überfordert. Ich würde dir empfehlen, erst vernünftig C++ zu lernen bevor du so ein Projekt anfängst...

Werbeanzeige