Ergebnis 1 bis 12 von 12

Thema: Logisches Problem

  1. #1

    Logisches Problem

    Hallo liebe RPG Gemeinde,

    ich möchte ein Schieberätsel erstellen. Dazu soll der Protagnist über einen Schalter laufen, dabei geht die Tür auf. Verlässt er den Schalter, soll die Tür wieder zu gehen. Es soll ein Stein auf den Schalter geschoben werden, während man in die Tür gehen kann.

    Die Türanimationen versteh ich bereits. Genauso, dass man dafür einen Switch benötigt. und einen CB. Aber wie genau kann man das am besten lösen?

    Also der Event wird komplexer, oder?
    Ich nutze den Maker 2k3.

  2. #2
    Also: Parallel Process:
    Folgende Koordinaten setzen:
    X-Held, Y-Held, X-Schalter, Y-Schalter, X-Stein, Y-Stein.
    Abfragen:
    Branch if Held X und Held Y = Schalter X und Schalter Y; dann: Switch: Schalter gedrückt, Tür auf. Else Handler: Schalter nicht gedrückt, Tür zu.
    Die gleiche Abfrage machst du nun mit dem Stein und dem Schalter.
    0.0er Wait ans Ende der Abfrage.
    Schieben kannst du den Stein via Move-Event.
    Klar soweit?

  3. #3
    Nene, ich würde die Abfrage in das Objekt reinstecken, das man schiebt, also jeweil nach dem Schieben.
    Vorteil: Kein Extraevent und wenn dann etwas geschieht, muss dafür vom PP auch kein Autostart aktiviert werden.
    Und neben dem Schalter sind Touch-Events verteilt, die die Tür schliessen, wenn sie vom Held geöffnet wurde.

  4. #4
    Zitat Zitat
    Vorteil: Kein Extraevent und wenn dann etwas geschieht, muss dafür vom PP auch kein Autostart aktiviert werden.
    n Autostart brauchst du für so'n Event ja auch gar nicht. Wenn was passiert einfach den "Tür auf/Schalter gedrückt"-Switch aktivieren, der auch sogleich den PP wegswitcht. (= Schieberätsel erledigt). Ich hab bei sowas immer gerne nen "Steuerevent", aber es gibt ja bekanntlich viele Lösungen für ein Problem.

  5. #5
    Wenn die Koordinaten des Helden ungleich mit denen des Schalters sind (= er steht nicht drauf) setzt du den Switch wieder OFF, genau.

  6. #6
    Hmmm, schau's dir mal im Maker an dann siehst du auch besser, was die einzelnen Aktionen bewirken

  7. #7
    Okay mach das mal. Wenn du noch fragen hast, dann frag mich ruhig.

  8. #8
    Man könnte auch in der Database eine eigene Terrain Idee namens "Schieberätsel" eintragen, die Position, an der der Held / der Stein stehen muss mit diesem Terrain markieren und einfach abfragen, ob die Terrain ID des Heldes / des Steines mit der Terrain ID der Terrain "Schieberätsel" übereinstimmt. Bietet imo den Vorteil, dass man das Schieberätsel ohne große Probleme von Map zu Map kopieren kann, falls man das Rätsel mehrmals einbauen möchte.

  9. #9
    @schenki: Nachteil dabei ist aber, dass du den Platz für das Schalterrätsel definitiv markiert hast. Wenn man versteckte Schalter machen wöllte, ist das also schwierig und man müsste es irgendwie überdecken. Wenn man jetzt für sowas ne Markierungsgrafik im upper Layer (oder als Event) hat, kann man jedenfalls schlecht die Terrain-ID dafür setzen, weil es im upper Layer keine Terrains gibt.

    Zitat Zitat von G-Brothers Beitrag anzeigen
    Nene, ich würde die Abfrage in das Objekt reinstecken, das man schiebt, also jeweil nach dem Schieben.
    Vorteil: Kein Extraevent und wenn dann etwas geschieht, muss dafür vom PP auch kein Autostart aktiviert werden.
    Und neben dem Schalter sind Touch-Events verteilt, die die Tür schliessen, wenn sie vom Held geöffnet wurde.
    Dann hat man mindestens vier Touch-Events, die man auch weglassen kann, wenn man dafür Sorge trägt, dass die X und Y IDs abgefragt werden. Finde da ein PP-Event sinnvoller.

    Vereinfacht dargestellt wäre der Code etwa so:

    Start Condition: Parallel Process

    (wait 0.0)
    Fork Condition: Varbiable Hero X [gleich] Variable Schalter X
    [-] Fork C.: Variable Hero Y [gleich] Variable Schalter Y
    [-] Change Switch: Schalter Tür = ON
    [-] ELSE CASE:
    [-] Fork Condition: Varbiable Stein X [gleich] Variable Schalter X
    [-][-] Fork C.: Variable Stein Y [gleich] Variable Schalter Y
    [-][-] Change Switch: Schalter Tür = ON
    ELSE CASE:
    Change Switch: Schalter Tür = OFF
    END CASE
    <>

    Das Event der Tür bekommt ebenfalls eine Bedingung rein.
    Bedingung: Schalter Tür = ON
    Teleport, was du so willst wenn der Schalter aktiviert ist.
    Ansonsten
    Geht die Tür eben nicht auf.

    So braucht man nicht mehrere Seiten in ein Event packen. (Es sei denn man will, dass die Tür dann anders aussieht, zB offen steht, wenn der Schalter an ist. Dann wäre ne Seite zwei Sinnvoll und man kann die Bedinungsabfrage weglassen sondern gleich auf Seite zwei als Eventbedingung angeben.)

    Ich hoffe, ich hab das so richtig aufgeschrieben. Hab's nicht getestet und es ist garantiert 3 Jahre her dass ich mal nen Schieberätsel gemacht habe... Und ich habe einfach verdammt wenig Ahnung von Technik, ich fuchs mich erst jetzt ins Technikverständnis rein. Ich probier's eventuell später aus. ^^

    Edit: ach ja, genau, man sollte das wait nicht vergessen.

    Geändert von Wencke (01.02.2013 um 11:15 Uhr)

  10. #10

  11. #11
    Zitat Zitat von Wencke Beitrag anzeigen
    Dann hat man mindestens vier Touch-Events, die man auch weglassen kann, wenn man dafür Sorge trägt, dass die X und Y IDs abgefragt werden. Finde da ein PP-Event sinnvoller.
    Aber aber aber... wenn da noch eine nette Animation hin muss...? D:
    Switch on -> Zack, Tür auf wäre für mich sowieso keine Option. Klar könnte man eine Animation auch mit PP machen, aber wenn man dann
    ständig auf den Schalter latscht, und wieder weg, gibt's Verzögerungen.

  12. #12
    DAS ist natürlich ein Argument, dass ich als Grafikerin selbstverständlich nachvollziehen kann und bei dem ich mich für mich persönlich geschlagen gebe. Aber wenn man auf geile Animationen verzichten kann, geht es auch mit 'nem Parallel Process.

    Ach, ich hab einfach null Ahnung von Technik. Muss grad über meine eigene Blödheit schmunzeln - Wie setze ich überhaupt den Objekt-Standort in den Variablen "Objekt X" und "Objekt Y" fest? Ich bin grad ein wenig Ratlos. Wahrscheinlich liegt die Lösung genau vor meiner Nase...
    Edit: Oh man, ich habs gefunden. Danke für das Skript, BlueGesyr!

    Edit 2: Scheiß auf Rätsel-Technikrätsel, ich geh mappen. :'D

    Geändert von Wencke (02.02.2013 um 00:14 Uhr)

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •