ich bräuchte hilfe zu einem Rätsel, das ich grad für ein Projekt erstelle
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 bräuchte also dringend Hilfe!
Vielen dank im Vorraus.
grüße
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.