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

Anonymous

unregistriert

1

04.01.2004, 17:10

Die Vektorklasse bei der TriBase Engine!

hi!
Ind er TriBase Engine wurde ja eine Vektorklasse und eine Matrizenklasse geschrieben!Aber die Funktionen für doi Klasse werden immer ohne die Punktsyntax aufgerufen!
Beispiel:

Quellcode

1
2
tbVector3 v;
v = tbVector3Min(xyz)

Aber normalerweise würde das doch so gemacht werden:

Quellcode

1
2
tbVector3 v;
v.Min(xyz);


Wie wurde das gemacht, das man das mit der Punktsyntax umgehen kann?

2

04.01.2004, 18:01

Das eine ist ne Klasse mit Funktionen, das andere (Davids) sind globale Funktionen ...

3

04.01.2004, 18:06

und das ist imho ein Kritikpunkt an David's Engine
er hat viel zu viele globale Funktionen
Do, ut des!
Ceterum censeo, carthaginem delendam esse

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

4

04.01.2004, 20:45

Naja, als Kritikpunkt würde ich das eigentlich nicht sehen. manchmal ist das auch mit ner globalen Funktion einfach schöner und übersichtlicher. Bei dem Beispiel oben würd ich die "Punkt" - Methode allerdings auch vorziehen

@ Jan das ist im Grunde genommen das gleiche. mit dem Punktoperator ist das nur "schöner" z.B. wir haben einen Baum in unserem Spiel.
den Baum können wir: absägen (gleich als erstes LOL), neuen planzen, gießen ....

also erstellen wir nach OOP eine Klasse Baum

class Baum {
void absaegen();
void planzen();
void giessen();
};

// funktionen
Baum giessen();

dann noch die Definition: Baum Eiche;

also können wir doch:

Eiche.geissen();

das ist schöner als:

Eiche = geissen();

der Rückgabetyp von geissen ist Baum, und Eiche gehört zum Objekt Baum. also ist das doch genau das gleiche.

Und wie man das macht, siehste ja oben. Ist ganz eifach, schau dir mal das Thema Klassen oder OOP (Objekt Orientierte Programmierung) an. ;)

NoName

Treue Seele

Beiträge: 118

Beruf: Student

  • Private Nachricht senden

5

04.01.2004, 21:38

Sollte "Eiche" nicht von "Baum" abgeleitet sein und Objekte von Eiche erzeugt werden? :)

6

05.01.2004, 13:54

Ich denke auch, dass man ganzen globalen Funktionen auch anders realisieren hätte können. Manches hätte man ja z.B. mit statischen Funktionen machen können....

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

7

05.01.2004, 17:56

@burki: Find ich auch, aber so schlimm ist es nun wiederrum auch nicht. Bei meinem "Nachbau" der Tribase Engine hab so was auch als Methoden implementiert.

@NoName:

Zitat

Sollte "Eiche" nicht von "Baum" abgeleitet sein und Objekte von Eiche erzeugt werden?


ja... klar ich wollts ja nur mal veranschaulichen.

Werbeanzeige