Jump N Run <-- Hintergrundbild und alles Stockt... :-|



  • Hallo,

    ich bin dabei ein kleines Jump'n'Run Spiel zu schreiben um mich
    an die Benutzung von grafischen Objekten in .Net zu gewöhnen...

    es klappt alles sehr gut - soweit so gut 😉

    Alles spiel sich bei mir in einer PictureBox ab - doch wenn ich nun
    ein Hintergrundbild mit in die PictureBox einfügen möchte geht garnix mehr!

    das spiel stockt total weil das hintergrundbild halt immer neu
    gezeichnet wird?!

    was kann ich tun?

    ich habe schon versucht eine 2te picturebox mit dem bild hinter die 1te
    picturebox zu legen und die 1te picturebox transparent zu machen. es klappt,
    stockt aber genauso wie oben beschrieben...



  • was kann ich tun?

    Code posten! 😕



  • Du müsstest dein Konzept etwas ändern, glaube ich. Aber erstmal brauchen wir wirklich mehr Input:
    Wie oft wird deine PictureBox denn neu gezeichnet? Bzw, wie oft änderst du da drin was?
    Was zeichnest du alles rein?

    Was ich an deiner Stelle mal ausprobieren würde: Reduziere das ganze mal auf Frames, so dass meinetwegen alle 50 ms das Fenster neu gezeichnet wird; das entpsricht 20 mal pro Sekunde und lässt sich leicht mit Zeit-Abfragen regulieren.
    Zum zweiten solltest du, während du die Szene, also Hintergrund, Männchen und Objekte, zeichnest, das alles in einen sogenannten Backbuffer zeichnen, also in einen extra Drawing-Kontext. Den Inhalt kopierst du dann, wenn alles fertig gezeichnet ist, einfach in die PictureBox. Sonst zeichnet Windows ja jedesmal das ganze Fenster neu, wenn du irgendwas drin änderst 🙂



  • Ich vermute, Du arbeitest ohne Backbuffer und das ist natürlich katastrophal für die Anzeige. Also: Leg Dir ein Bitmap an, welches den Hintergrund enthält und eines, welches das eigentliche Bild enthält. In jedem Zeichendurchgang zeichnest Du zuerst den Hintergrund ins Bild und dann die Figuren drüber. Ganz zum Schluss rufst Du dann die Invalidate-Methode der Picturebox auf und im Paint-Event der Picturebox zeichnest Du einfach Dein fertiges Bild auf die Hintergrundfläche. So ist der übliche GDI+-Weg.


Anmelden zum Antworten