sliders
- Sinitrena
- Tastatursteuerer
- Beiträge: 678
- Registriert: 08.05.2004, 01:01
- Wohnort: Frankfurt
- Kontaktdaten:
Ich bin nicht ganz sicher, ob sowas mit Sliders geht, in jedem Fall ist es aber kaum die vernünftigste Methode.
Wenn ich dich richtig verstehe möchtest du ein Geschicklichkeitsspiel, bei dem man was auch immer sich bewegt an einer bestimmten Stelle anhalten soll und wenn man das schafft gewonnen hat. Ich würde vorschlagen, du machst das mit einem Object in einem Raum und zwar so (ich gebe jetzt erst mal nur allgemeine Hinweise, hoffe das is ok): Du setzt das Objekt an die Stelle im Raum, wo die Bewegung beginnen soll, dann setzt du in Repeatedly execute etwas in der Art:
if (irgendeinint==0) { //brauchen wir um zu wissen ob Spieler Taste gedrückt hat
if (GetObjectAt (startposition==objectnummer) {
MoveObject (objectnummer, x-wert, y-wert, geschwindigkeit);
}
if (GetObjectAt (dein x- und y- wert==objectnummer) {
MoveObject (objectnummer, ursprünglichePosition);
}
}
Das muss im Room Script sein. Dann brauchen wir noch im GlobalScript bei on_key_press etwas in der Art:
if (keycode==welcheTastedubenutzenwillst) {
irgendeinint=1 //wichtig: hier benutze ich im Global und Room script eine selbst benannte Variable, soll heißen diese muss im GlobalScript eingeführt werden (ganz am Anfang) dann aus dem GlobalScript exportiert werden (export irgendeinint, am Ende des GlobalScript) und im ScriptHeader importiert werden (import int irgendeinint). Natürlich kannst du auch einen GlobalInt benutzen, dann sparrst du dir das ex - und importieren.
StopObjectMoving (deinobject);
if (GetObjectAt (derWertdenderSpielererwischensoll)==deinobject) {
Display ("Gratuliere, du hast an der richtigen Stelle die Taste gedrückt");
Display ("Wir machen das Spielchen jetzt nochmal!");
irgendeinint=0;
}
else {
Display ("Irgendwie hast du an der falschen Stelle gedrückt, also gleich nochmal!");
irgendeinint=0;
}
}
Natürlich kannst du auch andere Sachen dem Spieler sagen und natürlich gibt es nicht viel Sinn das Spiel immer wieder neu zu starten. Womit du aufpassen musst ist, dass die Taste natürlich nur in dem einen Raum mit dem Spiel funktionieren darf, sonst könnte das Spiel aussteigen, also musst du noch so was wie if (character[CHARACTER].room==deinRaum) { nur dann darf die Taste funktionieren, verwenden.
Ich übernehme keine Garantie, das es alles so funktioniert, ich hab es jetzt natürlich nicht ausprobiert, aber im großen und ganzen könnte es so gehen. Gut möglich das es einen einfacheren Weg gibt, aber es gibt sicher keinen ohne zumindest ein bischen Scripting
Wenn ich dich richtig verstehe möchtest du ein Geschicklichkeitsspiel, bei dem man was auch immer sich bewegt an einer bestimmten Stelle anhalten soll und wenn man das schafft gewonnen hat. Ich würde vorschlagen, du machst das mit einem Object in einem Raum und zwar so (ich gebe jetzt erst mal nur allgemeine Hinweise, hoffe das is ok): Du setzt das Objekt an die Stelle im Raum, wo die Bewegung beginnen soll, dann setzt du in Repeatedly execute etwas in der Art:
if (irgendeinint==0) { //brauchen wir um zu wissen ob Spieler Taste gedrückt hat
if (GetObjectAt (startposition==objectnummer) {
MoveObject (objectnummer, x-wert, y-wert, geschwindigkeit);
}
if (GetObjectAt (dein x- und y- wert==objectnummer) {
MoveObject (objectnummer, ursprünglichePosition);
}
}
Das muss im Room Script sein. Dann brauchen wir noch im GlobalScript bei on_key_press etwas in der Art:
if (keycode==welcheTastedubenutzenwillst) {
irgendeinint=1 //wichtig: hier benutze ich im Global und Room script eine selbst benannte Variable, soll heißen diese muss im GlobalScript eingeführt werden (ganz am Anfang) dann aus dem GlobalScript exportiert werden (export irgendeinint, am Ende des GlobalScript) und im ScriptHeader importiert werden (import int irgendeinint). Natürlich kannst du auch einen GlobalInt benutzen, dann sparrst du dir das ex - und importieren.
StopObjectMoving (deinobject);
if (GetObjectAt (derWertdenderSpielererwischensoll)==deinobject) {
Display ("Gratuliere, du hast an der richtigen Stelle die Taste gedrückt");
Display ("Wir machen das Spielchen jetzt nochmal!");
irgendeinint=0;
}
else {
Display ("Irgendwie hast du an der falschen Stelle gedrückt, also gleich nochmal!");
irgendeinint=0;
}
}
Natürlich kannst du auch andere Sachen dem Spieler sagen und natürlich gibt es nicht viel Sinn das Spiel immer wieder neu zu starten. Womit du aufpassen musst ist, dass die Taste natürlich nur in dem einen Raum mit dem Spiel funktionieren darf, sonst könnte das Spiel aussteigen, also musst du noch so was wie if (character[CHARACTER].room==deinRaum) { nur dann darf die Taste funktionieren, verwenden.
Ich übernehme keine Garantie, das es alles so funktioniert, ich hab es jetzt natürlich nicht ausprobiert, aber im großen und ganzen könnte es so gehen. Gut möglich das es einen einfacheren Weg gibt, aber es gibt sicher keinen ohne zumindest ein bischen Scripting
http://www.sinitrena.de.vu Meine Spiele: "A very special dog", "A magic stone", "James Bond - Who wants to live again?", "Lonely Night", "Death of an Angel", "The Witch, the Wizard and the Blue Cup", "Emerald Eyes"