Animierter Mauszeiger in der GUI

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

Animierter Mauszeiger in der GUI

Beitrag von Dave_Doofy »

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: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Re: Animierter Mauszeiger in der GUI

Beitrag von KhrisMUC »

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
Antworten