Problem mit "Maus neben Text" äh umgekehrt
Problem mit "Maus neben Text" äh umgekehrt
Script:
SetGUIPosition(xy,mouse.x+2,mouse.y-2);
// xy = Das Interface, das neben der Maus sein soll.
Problem:
Also bei mir soll der Text wenn man über ein Objekt kommt neben der Maus stehen. Dazu geb ich den obrigen Script beim repleady dingsda ein. Funktioniert super. Aber wenn ich nun spiele und die Maus nach unten rechts ins Bild bewege, hat das Interface keinen Platz mehr und AGS stürzt ab!
Frage dazu:
Ließe es sich durch einen aufwendigen Script verhindern, das IMMER wenn die Maus in die 4 bis 6 Pixel unten rechts kommt, der GUI abgeschaltet wird (krieg ich nicht hin, denn im repleaty dingsda execute kann man ja nicht einfach wie bei normalen Aktionen rumscripten). Hat einer 'ne Idee wie sich das machen ließe?
SetGUIPosition(xy,mouse.x+2,mouse.y-2);
// xy = Das Interface, das neben der Maus sein soll.
Problem:
Also bei mir soll der Text wenn man über ein Objekt kommt neben der Maus stehen. Dazu geb ich den obrigen Script beim repleady dingsda ein. Funktioniert super. Aber wenn ich nun spiele und die Maus nach unten rechts ins Bild bewege, hat das Interface keinen Platz mehr und AGS stürzt ab!
Frage dazu:
Ließe es sich durch einen aufwendigen Script verhindern, das IMMER wenn die Maus in die 4 bis 6 Pixel unten rechts kommt, der GUI abgeschaltet wird (krieg ich nicht hin, denn im repleaty dingsda execute kann man ja nicht einfach wie bei normalen Aktionen rumscripten). Hat einer 'ne Idee wie sich das machen ließe?
-
- Süßwasserpirat
- Beiträge: 258
- Registriert: 22.09.2002, 21:28
- Kontaktdaten:
Verwende den folgenden Code in repeatedly_execute:
// Ist Maus im Bereich, in dem die GUI sichtbar ist?
int xy_gui_on = (mouse.x > MINX) && (mouse.y > MINY) && (mouse.x < MAXX) && (mouse.y < MAXY);
// Ändert sich die Sichtbarkeit der GUI?
if (xy_gui_on != IsGUIOn (xy))
{
if (xy_gui_on)
{
GUIOn (xy);
}
else
{
GUIOff (xy);
}
}
// Position aktualisieren, wenn GUI sichtbar ist
if (xy_gui_on)
{
SetGUIPosition(xy,mouse.x+2,mouse.y-2);
}
// Ist Maus im Bereich, in dem die GUI sichtbar ist?
int xy_gui_on = (mouse.x > MINX) && (mouse.y > MINY) && (mouse.x < MAXX) && (mouse.y < MAXY);
// Ändert sich die Sichtbarkeit der GUI?
if (xy_gui_on != IsGUIOn (xy))
{
if (xy_gui_on)
{
GUIOn (xy);
}
else
{
GUIOff (xy);
}
}
// Position aktualisieren, wenn GUI sichtbar ist
if (xy_gui_on)
{
SetGUIPosition(xy,mouse.x+2,mouse.y-2);
}
-
- Süßwasserpirat
- Beiträge: 258
- Registriert: 22.09.2002, 21:28
- Kontaktdaten:
Das xy in die GUI-Bezeichnung oder -Nummer ändern (ausser in xy_gui_on, da lassen oder durch eine Bezeichnung ersetzen)
Die MINX/Y und MAXX/Y durch geeignete Werte ersetzen.
Dein SetGUIPosition findest du ziemlich am Ende des Codeschnippsels wieder. Es wird nur ausgeführt, wenn das GUI sichtbar ist.
Die MINX/Y und MAXX/Y durch geeignete Werte ersetzen.
Dein SetGUIPosition findest du ziemlich am Ende des Codeschnippsels wieder. Es wird nur ausgeführt, wenn das GUI sichtbar ist.
-
- Süßwasserpirat
- Beiträge: 258
- Registriert: 22.09.2002, 21:28
- Kontaktdaten:
Code: Alles auswählen
// Ist Maus im Bereich, in dem die GUI sichtbar ist?
int xy_gui_on = (mouse.x > 33) && (mouse.y > 34) && (mouse.x < 43) && (mouse.y < 44);
// Ändert sich die Sichtbarkeit der GUI?
if (xy_gui_on != IsGUIOn (OVER))
{
if (xy_gui_on)
{
GUIOn (OVER);
}
else
{
GUIOff (OVER);
}
}
// Position aktualisieren, wenn GUI sichtbar ist
if (xy_gui_on)
{
SetGUIPosition(OVER,mouse.x+2,mouse.y-2);
}
-
- Süßwasserpirat
- Beiträge: 258
- Registriert: 22.09.2002, 21:28
- Kontaktdaten:
Mit deinen MIN/MAX-Werten wird die GUI lediglich angezeigt, wenn die Maus sich in einem 10x10 Pixel großen Bereich befindet.
Wenn deine Angaben die Ränder sein sollen, dann zieh sie von Breite bzw. Höhe des Bildschirms ab:
int xy_gui_on = (mouse.x > 33) && (mouse.y > 34) && (mouse.x < 277) && (mouse.y < 156);
Bin mir gerade nicht sicher, ob die Mauskoordinaten immer maximal 320x200 sind.
Wenn deine Angaben die Ränder sein sollen, dann zieh sie von Breite bzw. Höhe des Bildschirms ab:
int xy_gui_on = (mouse.x > 33) && (mouse.y > 34) && (mouse.x < 277) && (mouse.y < 156);
Bin mir gerade nicht sicher, ob die Mauskoordinaten immer maximal 320x200 sind.
-
- Süßwasserpirat
- Beiträge: 258
- Registriert: 22.09.2002, 21:28
- Kontaktdaten:
-
- Süßwasserpirat
- Beiträge: 258
- Registriert: 22.09.2002, 21:28
- Kontaktdaten:
-
- Süßwasserpirat
- Beiträge: 258
- Registriert: 22.09.2002, 21:28
- Kontaktdaten: