Wie kann man eine Objekt Animation stoppen?
Ich möchte, dass per "Interact" eine Lavalampe eingeschalten wird (das klappt) und per zweites "Interact" wieder ausgeschalten. (Hab ich natürlich mit einer Flag Variable gemacht, die überprüft ob die Lampe beim anklicken an oder aus ist)
Aber ich finde keinen Befehl, mit dem man im Prorammtext die Animation ausschalten kann.
Mein Charakter soll sich mit "SetCharacterView" auf einen Stuhl setzn und zwar solange, bis man in den Raum klickt. Dann soll der alte View wieder auferufen werden. Ich bin soweit:
// script for object8: Interact object
MoveCharacterBlocking(EGO,162,191,1);
SetCharacterView(EGO,22);
AnimateCharacter(EGO,0,0,0);
weiß aber nicht, wie ich ReleaseCharacterView einbinden soll oder ob ich es überhaupt brauch.
Was kann ich da tun?
zwei neue Fragen...
1.) - In AGS v2.7 ist das direkt möglich mit Object.StopAnimating(), in AGS v2.62 und vorher musst du das Objekt mit SetObjectFrame oder SetObjectGraphic (bei letzterem bin ich mir nicht sicher) wieder auf ein Einzelbild schalten.
- Oder du kannst statt dem nicht-animierten Objekt einen Hotspot benutzen und dann das animierte Objekt ein- und ausschalten.
2.) In Room scripts kannst du auch eine on_mouse_click Funktion reinschreiben, diese wird dann vor der globalen Funktion ausgeführt.
Wenn du es also nur in dem einen Raum brauchst, z.B. folgendes in das Room script schreiben (Room Settings -> "{}"-Knopf):
- Oder du kannst statt dem nicht-animierten Objekt einen Hotspot benutzen und dann das animierte Objekt ein- und ausschalten.
2.) In Room scripts kannst du auch eine on_mouse_click Funktion reinschreiben, diese wird dann vor der globalen Funktion ausgeführt.
Wenn du es also nur in dem einen Raum brauchst, z.B. folgendes in das Room script schreiben (Room Settings -> "{}"-Knopf):
Code: Alles auswählen
function on_mouse_click(int button) {
if (GetCursorMode() == MODE_WALK) { // wenn im Walk-Modus
ReleaseCharacterView(GetPlayerCharacter()); // stoppe Spieleranimation und zurück zum normalen View
}
// globale on_mouse_click wird anschliessend ausgeführt (-> Spieler läuft zu Mausposition)
}