kostenloser Webspace werbefrei: lima-city


C# & XNA: Form erneut anzeigen

lima-cityForumProgrammiersprachenProgrammieren mit .NET & Mono

  1. Autor dieses Themas

    beph19

    beph19 hat kostenlosen Webspace.

    Hallo zusammen
    Folgende Ausgangslage: Ich habe mit XNA ein kleines Spiel programmiert und habe dazu mit WinForms ein Menu gemacht. Wird das Spiel beendet, soll wieder das Menu angezeigt werden.
    Also so was:
    Menu menu = new Menu();
    Game game = new Game();
    menu.showDialog();
    while(true)
    {
        Game.run();
        menu.showDialog();
    }

    Und hier liegt das Problem:
    Beim ersten Aufruf von menu.showDialog() wird das Menu problemlos angezeigt und anschliessend das Spiel gestartet. Doch beim zweiten Aufruf kommt eine Exception (Form sei bereits verworfen worden o.ä.). Also erstelle ich eine neue Instanz:
    [...]
    Game.run();
    menu = null;
    menu = new Menu();
    menu.showDialog();
    [...]

    Mit dieser Ergänzung kommt weder die Exception noch wird das Fenster angezeigt. Das Ereignis Load wird noch ausgelöst, Shown hingegen nicht mehr.
    Hat jeman eine Ahnung, wie ich das hinbekomme?
    Gruss
    beph19
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hallo beph19,

    wird am Ende von game.run() das game-Fenster mit Hide() versteckt oder mit Close() geschlossen?
    Falls das Zweite zutrifft, dann könnte ich mir vorstellen, dass das game-Fenster aus irgendwelchen Gründen als Hauptfenster aufgefasst wird und das Schließen des Fensters mit Close() zum Beenden der Anwendung führt. Daher würde dann kein Menü mehr kommen.
    Das sollte aber eigentlich nur der Fall sein, wenn Deine Main() Methode ungefähr so aussieht:
    public static void Main(string[] args) 
    {
        Application.Run(new Game());
    }
  4. Mach einfach nach deiner while Schleife:
    menu.Hide();


    und um das Menü wieder anzuzeigen:
    menu.showDialog();


    das müsste funktionieren, bin mir aber nicht ganz sicher.
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!