Hallo alle zusammen, ich bin dabei mit Microsoft Visual Studio 2008 ein Brettspiel (Agricola) nachzuprogrammieren. Da dieses Spiel über sehr viele Grafikanzeigen verfügt (Handkarten, Spielbrett und sonstiges) fängt das Programm an immer mehr zu ruckeln um all diese Informationen anzuzeigen. Bis jetzt habe ich für jedes Bild eine eigene Picturebox bzw. Panel erstellt und das Bild als Hintergrundbild eingestellt. Somit werden schätzungsweise an die 100 bis 200 Bilder auf einer Form angezeigt. Hinzu kommt, dass man zwischen verschiedenen Ansichten wechseln kann und man beim Wechsel mittlerweile sehen kann wie die einzelnen Bilder aufgebaut werden. Gibt es irgendwelche Alternativen in Visual Basic um dieses Problem zu umgehen oder sollte man gar eine ganz neue Umgebung hierfür verwenden?
Also wenn du 200 PictureBoxes hasst, ist das kein Wunder. Hier mal ein paar Möglichkeiten für bessere Performance: -Eingenes Steuerelement schreiben -Bilder in den Ram laden und von dort aus laden -evtl. Bilder zusammenfassen, wenn möglich
Ich würde zu der Lösung tendieren, die fertige Ansicht im RAM zu rendern (großes Byte-Array, wobei jeweils drei Byte für ein Pixel benutzt werden) und dann auf einmal darzustellen.
Vielen Dank für die schnellen Antworten! Ich bin leide noch ein Laie auf dem Gebiet. Könnte mir jemand in Kurzform erklären wie man die Bilder in den Ram hineinbekommt?
Hi, Ich würde dir auch raten, das genze ohne PictureBoxes zu lösen, sondern das ganze "manuell" in die Form / in ein eigenes Control zu zeichnen. Darüber hinaus ist es sicher sinnvoll immer nur das neu zu zeichnen was sich wirklich geändert hat. Einige Ideen / Algorithmen wie das Funktioniert findest du hier: http://www.mycsharp.de/wbb2/thread.php?threadid=21782 http://www.mycsharp.de/wbb2/thread.php?threadid=28527 ist zwar in C#, lässt sich aber ganz leicht in VB umwandeln, z.B.: hiermit: http://labs.developerfusion.co.uk/convert/csharp-to-vb.aspx greets
Das Zauberwort für die Bilder hieß tatsächlich Double Buffering, vielen Dank schonmal dafür, das Spiel läuft jetzt schonmal was flüssiger. Leider scheint sich dieses Double Buffering nur auf Grafiken positiv auszuwirken, da aber auch sehr viele Panels und Labels angezeigt werden sieht man nach wie vor wie diese aufgebaut werden. Gibt es denn auch ein Zauberwort für das Anzeigen von Panels und Labels? P.S. Habe hier auch mal ein Screenshot von der Hauptansicht eines Spielers angehängt. Ich hoffe man kann die vielen einzelnen Anzeigen erkennen. Der Spieler kann zudem unten ein TabControl öffnen wo weitere Informationen und Bilder angezeigt werden....
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.