Hallo liebe Adventure Fans,
Ich bin nach über einem Jahr Pause zurück
Und sofort eine Frage die ich leider alleine nicht beantworten kann.
Ich habe bei dem Mouse Cursors bei Interact in der Darstellung bei dem Feld View eine Animation hinterlegt.
Diese bewirkt, wenn man auf Hotspots oder Objekte zeigt aus einer Hand ein animierte Hand wird, die mit dem Zeigefinger nur zeigt.
Funktioniert prima.
Frage:
Wieso wird diese View nicht angespielt wenn ich in der GUI über Buttons bin?
Vielleicht geht das auch anders?
Vielen Dank schonmal
Dave
Animierter Mauszeiger in der GUI
- Dave_Doofy
- Verpackungs-Wegwerfer
- Beiträge: 61
- Registriert: 23.12.2010, 11:45
- Kontaktdaten:
Animierter Mauszeiger in der GUI
Aktuelles Projekt
Jack Crow - Flucht aus der Zukunft
Demovideos unter:
http://www.youtube.com/watch?v=HECTWBRoWGI
Website mit Projektblog und kleinem Background Tutorial
http://dadsoft.jimdo.com/
Jack Crow - Flucht aus der Zukunft
Demovideos unter:
http://www.youtube.com/watch?v=HECTWBRoWGI
Website mit Projektblog und kleinem Background Tutorial
http://dadsoft.jimdo.com/
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Re: Animierter Mauszeiger in der GUI
Kurz gesagt, weil ein GUI Button weder ein Hotspot noch ein Objekt ist.
Es müsste funktionieren, wenn Du z.B. bei eModePointer die selbe View angibst, und dann "Animate" auf "true" setzt, aber "AnimateOnlyOnHotspots" auf "false" lässt.
Jetzt muss noch im Script manuell der mouse.Mode auf eModePointer geändert werden, wenn man über einen Button fährt.
Es müsste funktionieren, wenn Du z.B. bei eModePointer die selbe View angibst, und dann "Animate" auf "true" setzt, aber "AnimateOnlyOnHotspots" auf "false" lässt.
Jetzt muss noch im Script manuell der mouse.Mode auf eModePointer geändert werden, wenn man über einen Button fährt.
Code: Alles auswählen
bool mouseWasOverButton = false;
int prevMode;
function repeatedly_execute_always() {
GUIControl *gc = GUIControl.GetAtScreenXY(mouse.x, mouse.y);
Button *b;
if (gc != null) b = gc.AsButton;
mouseIsOverButton = b != null;
if (mouseIsOverButton && !mouseWasOverButton) {
prevMode = mouse.Mode;
mouse.Mode = eModePointer;
}
else if (!mouseIsOverButton && mouseWasOverButton) {
mouse.Mode = prevMode;
}
mouseWasOverButton = mouseIsOverButton;
}
Use gopher repellent on funny little man