Form Preload nur halbwegs preloaded

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von ichduersie.

    Form Preload nur halbwegs preloaded

    Hallo zusammen,

    leider stehe ich mal wieder vor einem Problemchen :). Ich versuche gerade eine Form mit mehreren Controls, ein paar Bildern und Buttons zu preloaden. Ein Bilderpreload allein habe ich problemlos hinbekommen, aber die Form an sich schröggelt sich langsam aufbauend ins Bild...

    Ich habe die Form schon aus einer vorheringen heraus geladen und initialisiert. Nun ist es zwar besser geworden, aber der Aufbau der Form dauert dennoch 4-5 Sekunden :(.

    VB.NET-Quellcode

    1. Dim gamestarter As Form = New game
    2. gamestarter.Show()


    Form Init:

    VB.NET-Quellcode

    1. Public Sub New()
    2. MyBase.New()
    3. InitializeComponent()
    4. Me.SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.OptimizedDoubleBuffer Or ControlStyles.UserPaint, True)
    5. Me.UpdateStyles()
    6. Me.DoubleBuffered = True
    7. cardsblocked = True
    8. End Sub


    Ich habe hier im Forum neben dieser Möglichkeit keine brauchbare Lösung gefunden. Ich wäre dankbar über jeden Lösungsansatz.
    Ok, ist schon etwas viel. Wofür braucht man bitte 28 Bilder xD?
    Wenn es tatsächlich nicht durch irgendeinen Code im FormLoad-Event verursacht wird, solltest du mal schauen, ob du nicht weniger Bilder nimmst, oder den Renderer wechselst (z.B. D2D). Letzteres ist aber nicht ganz so einfach...
    Hey :),

    danke für deine Antwort. Das mit dem Renderer möchte ich auch ehrlich gesagt ungern ausprobieren. Und das es am Anfang mindestens 28 Bilder sind, liegt wahrscheinlich daran, dass es ein Kartenspiel wird und das es so ganz ohne Karten arg schwierig werden wird, es zu spielen ;). Die Karten habe ich allerdings testweise ausgelagert. Irgendwie ist es ohne Karten, trotzdem noch recht langsam. Kann mir leider nicht vorstellen woran es noch liegen sollte.

    Trotzdem vielen Dank!
    Da hast Du mit Sicherheit Recht. Ich bin auch echt für vieles offen und werde, falls ich noch ein Spiel schreibseln werde, mich um eine kleine Engine kümmern. Da das Spiel aber nun nahezu fertig ist und bis auf dieses eine Problem sehr flüssig läuft, fange ich damit nicht mehr an. Zu Anfang wollte ich sogar alles noch mit Pictureboxen und FlowLayoutPanels machen, bis mir gesagt wurde, dass ich mich dringend mit Owner Drawing etc. beschäftigen sollte. Das habe ich getan und ich musste ne Menge lernen. Jetzt noch eine Engine. Phew :).

    Aber werde mich demnächst damit beschäftigen. Bin mir noch nicht ganz sicher, ob ich dann nicht vllt. wieder eine andere Sprache nutzen sollte. Obwohl dieser Exkurs echt Spass gemacht hat :).
    Gegen VB.NET spricht ja nichts, für so ein kleines Spiel ist .NET schnell genug, damit es flüssig läuft (siehe z.B. auch Stardew Valley; ist in C# mit XNA geschrieben). Selbst die Unity-Engine nutzt im Hintergrund ja Mono und damit einen .NET-Port. Und so eine Engine ist eigentlich gar nicht so schwer. Es gibt ja selbst hier im Forum mehrere Engines. Zum Beispiel:

    [OpenSource] GameUtils
    -oder-
    Sharpex2D 1.3.0 | 2D Game Framework

    Sind zwar in C# geschrieben, aber zwischen den beiden Sprachen existiert kein so gravierender Unterschied, sodass man den Code zumindest lesen kann ;) Da sie ja OpenSource sind darfst du in den Code ja auch reinschauen und ihn bei beiden aufgrund der sehr großzugügigen Lizenzen auch benutzen und modifizieren.

    LG :)