Anfängerfrage: ist mein Vorgehen richtig?



  • Hauptmann: Das hatte ich auch vor, deshalb hab ich Warrior erstellt, alle Klassen werden von Warrior erben, sodass ich jedesmal Warrior als Typ benutzen kann.

    Sgt. Nukem: Ja, das geht schneller und spart Ressourcen. Aber das Game besteht bisher aus ein paar Klassen, denn
    [quote=Glamdring]im Moment noch kein Buch zur Spieleprogrammierung(sry total Pleite) [/quote].

    thx
    Glamdring



  • du brauchst ja auch keine Bücher
    auf www.gamedev.net gibt es mehr als genug Artikel
    zum bei spiel sei auch www.gamasutra.com genannt(du musst dich aber zuerst kostenlos regestrieren; )
    oder auch wwww.flipcode.com



  • DAnke für die Links werds mir mal ansehen.

    Gregor: Ich hab mir ne Liste mit Attributen, Funktionen und Klassennmaen sowie Erklärungen erstellt um mir Tipparbeit zu ersparen, denn meine IDE unterstütz scheinbar nichts dergleichen (oder ich hab keine Ahnung davon, was eigentlich immer stimmt)

    Gruß
    Glamdring



  • Eine pragmatische Antwort könnte sein, dein Vorgehen ist richtig, wenn es den gewünschten Erfolg erzielt.



  • TGGC schrieb:

    Eine pragmatische Antwort könnte sein, dein Vorgehen ist richtig, wenn es den gewünschten Erfolg erzielt.

    ergo ist mein Vorgehen (pragmatisch) beschissen, weil es überhaupt nichts bringt, weil Klassen alleine nie etwas bringen können???

    Glamdring



  • wtf 😮

    naja, ein paar Tipps von mir

    1. größere Implementierung gehören nicht in den Header (außer bei Templates)
    2. (wie Gregor bereits gesagt hat) Bezeichner wie W etc. sind schlecht, benutz vernünftige Namen
    3. Member Variablen sollten nicht public sein
    4. solltest du bei Klassen und Strukturen lieber Übergabe per Referenz bevorzugen gegenüber Call-by-Value
    5. musst du nicht an jedes if ein else hängen
    6. solltest du dir bevor du in die Spiele Programmierung einsteigst noch einiges über C++ lernen. Lies erstmal das:

    http://www.schornboeck.net/ckurs/index.htm
    http://www.volkard.de/vcppkold/inhalt.html
    http://mindview.net/Books/TICPP/ThinkingInCPP2e.html



  • zu1 : Wie du schon richtig mitbekommen hast kenn ich C++ nicht sonderlich gut (ist aber in Arbeit), daher weiss ich nicht was ein Template ist, aber zu meiner Rechtvertigung hab ich zu sagen: "Irgendwie muss ichs importieren". 🤡

    zu2: Wie ich Gregor bereits gesagt hab sind alle Variablennamen in einer Liste vereinbart

    zu3:Hä??

    zu4:Call by Value??

    zu5: stimmt

    zu6:hast absolut Recht, saug mir alles

    Gruß Glamdring



  • Mir sind noch zwei Fragen eingefallen:

    1. Upgrades: Ich möchte Upgrades möglich machen, die alle bisher gebauten Instanzen einer Klasse, und die Instanzen, die noch gebaut werden in ihren Werten verändern, sodass sie in irgendeinerweise stärker, schneller usw. werden. Wie kann ich die Klassen (vorübergehend) verändern???

    2. DX9: Kennt jemand gute (am besten dt.) Tutorials (mit denen, die bei DX dabei sind kann ich nichts anfangen, da sie [bei mir] net funktionieren).

    thx
    Glamdring



  • Also wenn du nur die Attribute einer Instanz einer Klasse ändern möchtest, kann die Klasse bleiben wie sie ist. Vielleicht würde es helfen, noch etwas allgemein (C++) Programmierung zu lernen bevor du in komplexe Gebiete vordringst.



  • Zu den Büchern:
    Ich hab jetzt C/C++ von Ulrich Kaiser gelesen und werde mir "Die C++ Programmiersprache" von Bjarne Stroustrup kaufen, ich hoffe das reicht.

    Zu den Instanzen:
    Dann müsste ich ja mit einer while(1) oder for(;;) Schleife nach neuen Instanzen suchen, n bisschen aufwendig!
    Gruß
    Glamdring



  • Glamdring schrieb:

    Zu den Büchern:
    Ich hab jetzt C/C++ von Ulrich Kaiser gelesen und werde mir "Die C++ Programmiersprache" von Bjarne Stroustrup kaufen, ich hoffe das reicht.

    "effektiv c++ programmieren" muß vor "die c++ programmiersprache". erst den sinn lernen, bevor du das handwerkszeug vervollständigst. sonnst nimmste die zange, um schrauben einzuhämmern.



  • Sgt. Nukem, dein Vorschlag mit dem Array klinkt gut, nur leider verstehe ich ihn nicht ganz. Wenn man ein neues Element einfügt, dann wird der letzte Platz belegt und beim nächsten Einfügen muss man dann wieder suchen. Was soll das also bringen?



  • Wieso muß man dann wieder suchen!?

    Wenn man aus einem 20-großen Array an Stelle 10 was löscht, dann an Stelle 4, muß man beim nächsten Einfügen die nächste freie Stelle wieder suchen:

    1 frei? -> NEIN -> 2 frei? -> NEIN -> 3 frei? -> NEIN -> 4 frei? -> JUP! - Einfügen!

    Wenn man aber, sobald man 10 löscht, den letzten Eintrag (20) in 10 reinkopiert, und beim Löschen von 4 den letzten (19) in 4 reinkopiert, weiß man genau, daß - wenn überhaupt - an der letzten Stelle (jetzt 18) eine freie Position ist. Ohne zu suchen.



  • @ Volkard: Meine konkete Liste beinhaltet:
    - Direct X gepackt
    - 3D Grafikprogrammierung
    -Spieleprogrammierung Gems 1
    - Computerspiele
    - C/C++ gepackt
    - Game Programming für Dummies
    - JLI Direct X9 und Visual C++
    - Visual C++ 6 (bhv)
    - Spiele Programmierung
    - Spieleprogrammierung in C++
    - Effektiv C++
    - Mehr Effektiv C++
    - Go To COM
    - Visual C++


Anmelden zum Antworten