|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Catscratch1 Junior JLI'ler
Anmeldedatum: 20.01.2005 Beiträge: 98
Medaillen: Keine
|
Verfasst am: 20.01.2005, 17:14 Titel: Kapitel 27 DirectX 9 und Visual C++ |
|
|
Hi,
ich habe ein Problem. Ich habe mir das Buch DirectX 9 und Visual C++ gekauft. Leider habe ich die CD zum Buch verlegt und habe daher Probleme die Beispiele zum Laufen zu kriegen, da ja einiges an Code im Buch fehlt.
Das erste Beispiel in Kapitel 27, wo das Dreieck initialisiert wird habe ich noch prozedural hinbekommen, aber da ich eigentlich C# Programmierer bin, habe ich Probleme das Beispiel objektorientiert zu schreiben.
Ich kriege es nicht hin die Vertexstruktur als Attribut einer Klasse anzulegen.
Ich wäre dankbar, wenn mir jemand das Dreiecksbeispiel als objektorientierten Code geben könnte.
Danke! |
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
|
Nach oben |
|
|
Catscratch1 Junior JLI'ler
Anmeldedatum: 20.01.2005 Beiträge: 98
Medaillen: Keine
|
Verfasst am: 20.01.2005, 17:31 Titel: |
|
|
naja ich mein schon klassen.
Was nennst du da Aberglauben.
Ich mach nen Vergleich zwischen Managed DirectX und DirectX. Da muss die Struktur wenigstens übereinstimmen! |
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 20.01.2005, 17:50 Titel: |
|
|
Also wer denkt man hat OOP nur weil man Klassen benutzt, sollte das Buch das er hat mal ganz schnell auf den Müll werfen!
Nichtmal DirectX ist richtig OOP sondern eher nur son billiger Abklatsch, obwohl das COM-Prinzip anfürsich sehr gut ist.
OOP bedeutet:
- Strickte Einhaltung der Richtlinien, darunter fällt auch das OCP! (DX und Managed kannste knicken, machen die net)
- const-correctness (bei DX? lol)
- typsicherheit (ich sag nur void*)
- getter/setter (naja bei DX ok, aber uff)
- namespaces
- templatebasierung (schon allein der typsicherheit)
- richtige Vererbung ohne Liskov-Prinzip (DX? LOOOOL)
- one defintion rule
- Law of the big three (Komm lassen wir das Thema mal bei DX )
Du siehst nun was OOP ist _________________ 'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ] |
|
Nach oben |
|
|
Catscratch1 Junior JLI'ler
Anmeldedatum: 20.01.2005 Beiträge: 98
Medaillen: Keine
|
Verfasst am: 21.01.2005, 06:30 Titel: |
|
|
Ich kenne mich mit OOP ganz gut aus.
Ich sag ja nur, dass ich das Prinzip so weit wie möglich einhalten will, damit die Struktur mit C# vergleichbar ist.
Ich programmier bisher nur mit C# und Java, daher ist mir der Zeiger, typedef und struct kram ein bisschen unbekannt.
Dass DirectX nicht wirklich OOP ist, sieht man vor allem an den ganzen Konstanten, die im DirectX Package sind.
Managed DirectX ist dagegen konsequent object orientiert, obwohl die in den neuen Versionen von Geheimhaltungsprinzip und Kapselung wieder weggehen, meines erachtens. |
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 21.01.2005, 07:40 Titel: |
|
|
Catscratch1 hat Folgendes geschrieben: | Ich kenne mich mit OOP ganz gut aus. |
Sure?
Catscratch1 hat Folgendes geschrieben: | Ich programmier bisher nur mit C# und Java, daher ist mir der Zeiger, typedef und struct kram ein bisschen unbekannt. |
Dann würd ich mich mal mehr damit beschäftigen, OOP basiert auch auf Dynamik und da man dynamik nur mit Zeigern (new/delete) erreichen kann... solltest Dus dir mal ansehen, unter Java gibt es auch new.
Catscratch1 hat Folgendes geschrieben: | Dass DirectX nicht wirklich OOP ist, sieht man vor allem an den ganzen Konstanten, die im DirectX Package sind. |
Was ist denn das für ein Argument? Tust ja so als ob du niemals Flags benutzt? Anscheinend kennst Du dich doch nicht so sonderlich aus.
CPP: | typedef enum _D3DPRIMITIVETYPE {
D3DPT_POINTLIST = 1,
D3DPT_LINELIST = 2,
D3DPT_LINESTRIP = 3,
D3DPT_TRIANGLELIST = 4,
D3DPT_TRIANGLESTRIP = 5,
D3DPT_TRIANGLEFAN = 6,
D3DPT_FORCE_DWORD = 0x7fffffff
} D3DPRIMITIVETYPE;
| Sieht für mich nach einer guten Einhaltung der OOP aus in Sachen Konstanten, bis auf das typedef aber das gibt es ja schon seit der Entstehung von DX.
Catscratch1 hat Folgendes geschrieben: | Managed DirectX ist dagegen konsequent object orientiert |
Oh Herr... Habe Mitleid mit ihm, er weiß nicht was er sagt...
Nimms mir nicht sonderlich übel, aber ich glaube Du solltest Dir mal paar Anständige OOP Bücher kaufen und nicht diese 08/15 Bücher wie "OOP in 21 Tagen" oder das Nachgeplapper "DirectX ist vollkommen nach den OOP richtlinien Programmiert!" bzw. "DirectX benutzt klassen! Also ist es OOP!" _________________ 'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ] |
|
Nach oben |
|
|
Catscratch1 Junior JLI'ler
Anmeldedatum: 20.01.2005 Beiträge: 98
Medaillen: Keine
|
Verfasst am: 21.01.2005, 16:08 Titel: |
|
|
Ruhig bleiben.
Aber Strukturen sind halt eher ein C++ Konstrukt,
Ich benutze daher anstatt Strukturen Klassen mit statischen Attributen, um Konstanten zu definieren. So wird es auch bei Managed DirectX umgesetzt.
Enumerations sind auch nicht schlecht für Konstanten, wie du es zeigst. Kriegt aber in Java beispielsweise seinen Durchbruch erst jetzt mit version 1.5 .
Was ich halt nicht mag sind Strukturen.
Strukturen existieren beispielsweise in Java nicht und in C# sind es wertige typen und nicht speicherreferenzierte. Außerdem sagt unser Prof:
"structs sind Klassen für Arme!"
Wir könnten hier jetzt Stundenlang diskutieren wie die OOP funktioniert, aber das bringt gar nichts. Weil Datentypen nix mit OOP zu tun haben, sondern die Implementierung von Problemstellungen.
Klassen bedeuten keinesfalls OOP, das ist richtig. Wenn mans richtig macht, kann damit OOP realisieren.
Aber, wenn Managed DirectX nicht objekt-orientiert umgesetzt wurde, dann weiß ichs nicht mehr und du musst dann die OOP wirklich missverstanden haben und solltest selbst drüber nachdenken, was du sagst. Ich hoffe du kennst den Unterschied zwischen Managed DirectX und DirectX!
Und zu den Zeigern. In Java gibt es keine Zeiger. Dort gibt es nur Referenzen, welche aber nicht mit den Referenzen in C++ vergleichbar sind.
Der new operator allokiert zwar neuen Speicher, jedoch ist eine Referenz in Java eher ein Handle.
In Java braucht man daher nicht auf den unterschied von call by value oder reference achten, da objekte nur by reference übergeben werden. |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 21.01.2005, 18:59 Titel: |
|
|
*PopcornNehm* Das wird sicher gleich spannend. Unser guter Patrick schafft es wirklich gut sich gute Kontakte auf zu bauen _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
HomeLess_PunkDrummer JLI Master Trainee
Alter: 36 Anmeldedatum: 28.11.2004 Beiträge: 583 Wohnort: Alter Joghurtbecher an der A4 Medaillen: Keine
|
Verfasst am: 21.01.2005, 19:21 Titel: |
|
|
Ich setze 20 Euro auf Catscratch1. Obwohl Patrick sehr sehr erfahren ist, scheint unser Neuling hier mehrere Asse im Ärmel zu ham _________________ "Was die Götter angeht, so ist es mir unmöglich, zu wissen, ob sie existieren oder nicht, noch, was ihre Gestalt sei. Die Kräfte, die mich hindern, es zu wissen, sind zahlreich, und auch ist die Frage verworren und das menschliche Leben kurz." |
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 21.01.2005, 19:21 Titel: |
|
|
FallenAngel84 hat Folgendes geschrieben: | *PopcornNehm* Das wird sicher gleich spannend. Unser guter Patrick schafft es wirklich gut sich gute Kontakte auf zu bauen |
Ich sag nur noch eines: Auf son bullshit lass ich mich net mehr ein, ist doch Kinderkacke _________________ 'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ] |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 21.01.2005, 19:30 Titel: |
|
|
Patrick hat Folgendes geschrieben: | FallenAngel84 hat Folgendes geschrieben: | *PopcornNehm* Das wird sicher gleich spannend. Unser guter Patrick schafft es wirklich gut sich gute Kontakte auf zu bauen |
Ich sag nur noch eines: Auf son bullshit lass ich mich net mehr ein, ist doch Kinderkacke |
Is nun mal so, hier kommen recht viele Anfänger und auch Erfahrene rein, bisher hast du nur selten einen guten Eindruck auf diese Leute gemacht. Wenns bullshit ist dann erklärs einmal ausführlich und lass dich nicht auf Streiterein ein Immerhin konnte man von uns bisher behaupten das wir ne freundliche Community waren, ich fänds schön wenns so bleibt.
Was jezz nicht heissen soll: "Piss da Patrick!" du bist uns immer herzlich willkommen, besonders dein Wissen macht deine leichte Unprofessionalität im Verhalten zu anderen wett. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
HomeLess_PunkDrummer JLI Master Trainee
Alter: 36 Anmeldedatum: 28.11.2004 Beiträge: 583 Wohnort: Alter Joghurtbecher an der A4 Medaillen: Keine
|
Verfasst am: 21.01.2005, 19:32 Titel: |
|
|
Hart aber gerecht. Muss ja nicht alles so schlecht sein wie es scheint, und jemand der void* Dinger nimmt hat sicherlich auch seine Gründe. _________________ "Was die Götter angeht, so ist es mir unmöglich, zu wissen, ob sie existieren oder nicht, noch, was ihre Gestalt sei. Die Kräfte, die mich hindern, es zu wissen, sind zahlreich, und auch ist die Frage verworren und das menschliche Leben kurz." |
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 21.01.2005, 19:43 Titel: |
|
|
FallenAngel84
Sorry, aber bin momentan sehr depri, daher bitte ich mein Verhalten zu entschuldigen. Man hat ja nicht jeden Tag die Freundin im Krankenhaus mit 21 Knochenbrüchen und einer Hirnblutung... *schnief* _________________ 'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ] |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 21.01.2005, 19:45 Titel: |
|
|
Oh das tut mir leid, gute Besserung wünsche ich. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
HomeLess_PunkDrummer JLI Master Trainee
Alter: 36 Anmeldedatum: 28.11.2004 Beiträge: 583 Wohnort: Alter Joghurtbecher an der A4 Medaillen: Keine
|
Verfasst am: 21.01.2005, 19:46 Titel: |
|
|
Woah, das kann keiner wissen. das tut mir leid. Ich hoffe es geht ihr wieder. Was war denn passiert? Echt, wünsch ihr gute besserung von mir...oder uns. _________________ "Was die Götter angeht, so ist es mir unmöglich, zu wissen, ob sie existieren oder nicht, noch, was ihre Gestalt sei. Die Kräfte, die mich hindern, es zu wissen, sind zahlreich, und auch ist die Frage verworren und das menschliche Leben kurz." |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|