Animierter Mauszeiger in der GUI

Fragen zu "Adventure Game Studio"? Hier rein!
Benutzeravatar
Dave_Doofy
Verpackungs-Wegwerfer
Verpackungs-Wegwerfer
Beiträge: 61
Registriert: 23.12.2010, 11:45
Kontaktdaten:

Animierter Mauszeiger in der GUI

Beitragvon Dave_Doofy » 04.11.2016, 16:55

Hallo liebe Adventure Fans,

Ich bin nach über einem Jahr Pause zurück :D

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
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/

Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4673
Registriert: 14.03.2005, 00:55
Wohnort: München

Re: Animierter Mauszeiger in der GUI

Beitragvon KhrisMUC » 07.11.2016, 20:08

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.

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


Zurück zu „AGS Forum“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste