XNA Dialog erstellen

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von APPIX.

    XNA Dialog erstellen

    Moin,

    Ich arbeite grad an einem kleinen Spiel mit XNA und habe eine Frage:
    Das Spiel arbeitet ganz normal mit einer Update-Routine und so weiter.

    Nun aber will ich innerhalb des Spiels aber Dialoge einbringen, die den aktuellen Code an GENAU DER ZEILE stoppen und, sobald der Dialog dann geschlossen wird, auch genau unter dem Dialogaufruf weitermacht.

    Im Prinzip also eine MsgBox mit eigenem Design für XNA. Ich weiß, dass man mit WinForms (ja ich weiß WPF und so aber was solls) eigene Dialoge einsetzen kann, aber wie dies nun mit XNA und auch halbwegs stilvoll zu realisieren ist leider nicht.

    Falls also jemand einen Tipp hat, wäre das eine große Hilfe.
    Danke.
    Guck dir mal das GameStateManagement-Sample von Microsoft an (Google hilft da weiter), dort sind solche Sachen drin.
    Zwar nicht so, wie du es beschrieben hast (weil das in XNA absolut nix zu suchen hat), aber es erfüllt denselben Zweck.
    Gut sieht erst mal danach aus, was ich gesucht habe...und kompliziert :D zunächst.

    Aber wieso sollte das nicht in XNA passen??? Kann sein, dass das, was ich geschrieben habe unverständlich ist, aber ich meine, wenn die KI irgendwas tut, dann kommt eine kleine Meldung (nicht als eigenes Fenster sondern ins Game integriert, deswegen auch mit verschiedenen Screens). Diese informiert den Spieler dann, was der Gegner getan hat. Und damit die KI nicht weitermacht, während der Spieler sich die Nachricht durchliest, soll das Spiel eben angehalten werden, bis der Spieler auf OK klickt.

    Aber danke ;)
    Weil es in XNA nicht passt. Wenn du dich weiter damit befasst, wirst du auch merken, wieso. ;)
    Denn das hier:
    die den aktuellen Code an GENAU DER ZEILE stoppen und, sobald der Dialog dann geschlossen wird, auch genau unter dem Dialogaufruf weitermacht
    ist ein synchroner Vorgang (oder etwas ähnliches), was in XNA einfach nichts verloren hat.
    Guck dir das Beispiel von MS an, ich weiß, dass es kompliziert ist, weil ich mich selbst gerade da durchkämpfe, aber man kann es verstehen. :D
    Naja aber leider hätte ich gerne genau so einen Vorgang implementiert, ob es nun passt oder nicht...

    Und das mit den GameScreens ist doch gar nicht so schwer oder irre ich mich jetzt total?
    Hab da selber bereits ohne dieses Microsoft-Beispiel schon eine GameScreen Klasse geschrieben, was eigentlich auch ganz gut funktioniert hat.

    Nur kann man mit diesen Funktionen eben nur den Code einer Update-Schleife einmal fertig durchlaufen lassen und DANN erst abfangen lassen. Und das ist etwas doof in einem rundenbasierenden Spiel...

    APPIX schrieb:

    Naja aber leider hätte ich gerne genau so einen Vorgang implementiert, ob es nun passt oder nicht...

    Nun, dann musst du dich damit abfinden, dass ab Einblendung deiner MesssageBox das Programm/Spiel einfriert und nicht mehr reagiert. Du hast wahrscheinlich das Prinzip XNAs noch nicht ganz verstanden.


    Wenn du in dem grünen Bereich reingrätschst, ist dein Programm hinüber.

    Skybird schrieb:

    Das sind ja Ubisoftmethoden hier !

    Doch das habe ich schon alles verstanden :D aber trotzdem danke für die Übersicht, hast dir mühe gegeben ;)

    Und ich glaube es ist jetzt so technisch gesehen das gleiche, wie die Dialoge in WindowsForms...
    Da friert ja der GUI prozess auch nicht ein, wenn ein Dialog aufgerufen wird.

    Aber wenn das nicht möglich ist, finde ich mich halt damit ab. Schade.
    Da durch hat man auch viel mehr Möglichkeiten, was beim erstellen von Spielen natürlich wichtig ist.
    Z. B. könnte sich das Design deiner Infobox, aufgrund anderer sich weiter verändernden Daten anpassen (Farben/Texte, anhand der HP, oder Im laufe eines Dialogs an den gewählten Optionen).
    Na wie gesagt, ich hab ja nur mal gefragt, ob das möglich ist.
    Wäre das mit der Struktur so einfach, wär ich wahrscheinlich schon selbst drauf gekommen.

    Aber so muss man dann eben gucken, wie man das hinkriegt.
    Und das mit WindowsForms war ja nur ein Beispiel, wie ich mir das am Ende vorgestellt hätte. Codetechnisch gesehn hätte man da logischerweise (eben wegen der Struktur von XNA oder generell von Spielen) was anderes bauen müssen.

    Trotzdem danke für eure Mühen.