Bewegungsabläufe mit MFC



  • Hi,
    ich dacht mir, wenn ich nen Kleines Spiel progge, lern ich das Programmieren mit Cpp am besten (Spaßfaktor).

    Dafür hab ich mir das Tutorial von Herrn Henkes mal durchgelesen und die Kapitel 4, 9 besonders aufmerksam.

    http://www.henkessoft.de/C++/MFC/mfc_einsteigerbuch_kapitel9.htm

    Nun, nachdem ich Kap 9 fertig habe, musste ich feststellen, das die Bewegungsabläufe sehr langsam und ruckelig ablaufen, zudem wird ein Großteil des Hintergrundes Weiß.

    Ist es überhaupt möglich mit MFC ein eifaches Spiel wie z.B. Tetris mit akzeptablen Grafiken (d.h. ohne diese Effekte) zu proggen??
    Oder muss man sich dafür in die DX - Programmierung einarbeiten???

    Gruß
    mercer



  • Gibt ne menge andere api's so wie ich das sehe brauchst du so was wie allegro zu finden auf allegro.cc das ist nen dll die du einbindest die dir verschiden Funktion vereinacht von drect x für 2d games ermöglicht!



  • also ich finde tetris könnte man auch ohne extra api
    programmieren.

    Flicker-free
    CRect
    Timer
    und viele überprüfungen 😉

    ich finde damit kann man schon ein recht gutes tetris programmieren!



  • Hi,
    danke erstmal 👍

    Gibt es irgendwo Beispiele oder Tutorials, bei denen man den Einsatz nen bissl abspicken kann??

    Gruß


  • Administrator

    zu FlickerFree -> http://www.codeproject.com/gdi/flickerfree.asp
    zu CRect -> Schau in der MSDN ... die Klasse ist zu einfach, als dass man hier einen Spick braucht.
    Timer -> Schau dir in der MSDN SetTimer und KillTimer an.

    Grüssli



  • An mercer:
    Selbstverständlich ist es möglich, akzeptable Spiele mit der MFC ohne DirectX zu programmieren. Das Tutorial von Erhard Henkes ist an dieser Stelle leider nicht gerade das beste (die Erklärung, wie man transparentes Blitten realisiert, ist dagegen absolut top), da er mir InvalidateRect und nicht mit Double Buffering arbeitet und zur Zeitüberbrückung ein for (i=0; i<1000000; i++) statt einen Timer nimmt. Deshalb hat er mir angeboten, das ganze mal zu überarbeiten. Ich würde Dir also empfehlen, so gegen Ende der Woche nochmal dort vorbeizugucken. Dann dürftest Du genau das bekommen, was Du willst.





  • SetTimer ist zu ungenau für Spiele.



  • Ja, eigentlich ist er zu ungenau. Aber trotzdem noch besser als eine for-Schleife oder ein Sleep.
    Was würdest Du für Spiele empfehlen?



  • mss schrieb:

    SetTimer ist zu ungenau für Spiele.

    Naja, du musst natürlich unterscheiden ob du Tetris oder einen Egoshooter programmierst... 😉
    Für ersteres sollte ein Timer reichen. 🙂



  • Ist es überhaupt möglich mit MFC ein eifaches Spiel wie z.B. Tetris mit akzeptablen Grafiken (d.h. ohne diese Effekte) zu proggen??
    Oder muss man sich dafür in die DX - Programmierung einarbeiten???

    Ich denke, dass man DX verwenden sollte, ist nicht allzu schwer, solange man nur 2D verwendet.

    Es gibt ein Buch, das ein "Ultris" (Tetris-Clone) stepwise entwickelt:
    Ulrich Kaiser, Spieleprogrammierung in C++, Galileo Computing
    (2D-Projekt Ultris, S.21-124, 1.Auflage, 2003; 3D- und Netzwerk-Projekt ist ebenfalls enthalten)



  • Danke ertmal für die Ganzen Antworten, 👍
    ich möchte aber doch lieber bei der einfachsten Variante bleiben (MFC), da ich noch nicht allzu fit im Cpp bin.

    Tetris möchte ich nur programmieren um das Verwenden von Klassen, Methoden usw... zu lernen. Und damit der Spaßfaktor nicht zu kurz kommt, solls eben ein Spiel sein!

    Ich hab ja schon einige Tutorials durch, und jetzt wirds langsam Zeit für was eigenes (meiner Meinung nach lernt mans nur richtig wenn man eigene Probleme lösen muss, und nicht durch stires abtippen)

    Ich freu mich schon auf die Überarbeitete Version von henkessoft!
    Und wenn ichs durch hab und alles klappt, kanns endlich los gehen ⚠ 🙂 🤡

    Gruß
    mercer



  • Ich freu mich schon auf die Überarbeitete Version von henkessoft!

    Programm steht schon, Kapitel ist dank Co-Autor ebenfalls in der Mache.



  • Krass, THX 👍 👍 👍




Log in to reply