Brauche bitte Hilfe zu einem Safe-Rätsel

  • #1, by GravesTheAceTuesday, 01. May 2012, 23:50 13 years ago
    Hallo Leute,

    ich bräuchte hilfe zu einem Rätsel, das ich grad für ein Projekt erstellewink

    Die Idee:

    Safe hat ein Drehschloss, das erst aktiviert wird, wenn man ein bestimmtes Kulissenobjekt in der Szene benutzt. Dann kann man das Drehschloss vom Safe benutzen. Das Schloss ist eine Scheibe mit Zahlen von 0 - 55, in 5er Schritten. Wie bei jedem Safe, klickt man nach Links oder Rechts(mit Pfeile). und jedesmal kommt ein Knack geräusch, aber wenn man die falsche Richtung gewählt hat(kommt ein anderes Geräusch und das Rätsel switscht zum Startpunkt(also fängt wieder von Vorne an[ab Drehschloss]) Wenn man die richtige Kombination hat, dann öffnet sich der Safe und das Rätsel is geschaft.

    so das möchte ich umsetzten, hab aber kp wie ich das mache wink bräuchte also dringend Hilfe!

    Vielen dank im Vorraus.

    grüße

    René

    Newbie

    0 Posts


  • #2, by NovelWednesday, 02. May 2012, 22:26 13 years ago
    Moin René,

    der erste Punkt ist klar - bei dem bestimmten Kulissenobjekt eine Bedingung definieren wie "Objekt wurde benutzt" und diese dann beim Drehschloss abfragen.

    Die Safe-Sache ist eine mehrstufige if-then-Geschichte. So etwas habe ich in meinem Projekt auch.

    Angenommen, die Kombination wurde als 30, 20, 50 ermittelt, in dieser Reihenfolge. Das bedeutet 3 Werte: "CorrectNumLevel1" mit Anfangs- bzw. zugewiesenem Wert 30, "CorrectNumLevel2" mit 20, "CorrectNumLevel3" mit 50.

    Du musst die Stufe definieren, auf der du dich bei der Codeeingabe befindest. Nennen wir sie "ActualLevel" (Anfangswert: 1).

    Du brauchst weiters einen Wertehalter für die derzeit gehaltene Zahl, z.B. "ActualNum = 0". Der wird also bei Pfeildruck entweder +5 oder -5 gesetzt. Und dann noch einen Wertehalter für die aktuell korrekte Stellung, also "ActualCorrectNum" (Anfangswert: 30).

    Dann musst du noch definieren, in welche Richtung man gerade drehen soll. Dazu würde ich den Wert "CorrectRicht" definieren, und für aufwärts auf 1 und für abwärts auf 0 setzen, am Anfang also auf 1: Von 0 muss man hoch auf 30, dann runter auf 20 und hoch auf 50. Dazu passend kommt Wert "ActualRicht", also das, was du tatsächlich drückst.

    Die Routine sieht dann also so aus beim Pfeilklick nach oben:

    
    ActualRicht = 1
    Wert "ActualNum" +5
    Wenn "ActualNum" = 60
    	Wert "ActualNum" = 0
    EndeWenn
    Aktion "Stufe definieren" starten
    

    Und beim Pfeilklick nach unten:

    
    ActualRicht = 0
    Wert "ActualNum" -5
    Wenn "ActualNum" = -5
    	Wert "ActualNum" = 55
    EndeWenn
    Aktion "Stufe definieren" starten
    

    
    Aktion "Stufen definieren":

    Wenn Wert "Stufe" = 1 Wert "ActualCorrectNum" = "CorrectNumLevel1" CorrectRicht=1 Ende Wenn Wenn Wert "Stufe" = 2 Wert "ActualCorrectNum" = "CorrectNumLevel2" Wenn Wert "CorrectNumLevel2" > Wert "CorrectNumLevel1" CorrectRicht = 1 Sonst 0 Ende Wenn Ende Wenn Wenn Wert "Stufe" = 3 Wert "ActualCorrectNum" = "CorrectNumLevel3" Wenn Wert "CorrectNumLevel3" > Wert "CorrectNumLevel2" CorrectRicht = 1 Sonst 0 Ende Wenn Ende Wenn Aktion "WeiterChecken" starten

    Wir wissen also jetzt, an welcher Stelle des Codes wir uns befinden und in welche Richtung wir drehen sollen. Weiter:

    
    Aktion "WeiterChecken":

    Wenn Wert "CorrectRicht" != Wert "ActualRicht" Setze Wert "Stufe" = 1 Sound ausgeben: "*Ratter*" Beende aktuelle Aktion Ende Wenn

    Hier endet also die Abfrage, wenn man in die falsche Richtung gedreht hat. Ansonsten geht es folgendermaßen weiter:

    
    Wenn Wert "ActualNum" = "ActualCorrectNum"
    	Setze Wert "Stufe" + 1
    	Wenn Wert "Stufe" = 4
    		Text ausgeben: "Hurra, gewonnen!"
    	Ende Wenn
    Ende Wenn
    

    Das habe ich mir jetzt so aus dem Kopf gesogen, aber es sollte einigermaßen logisch sein. Solchen Problemen kann man sich aber immer am besten annähern, indem man sie aufzeichnet.

    Newbie

    100 Posts