Problem mit "Maus neben Text" äh umgekehrt

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
Sharalamude

Problem mit "Maus neben Text" äh umgekehrt

Beitrag von Sharalamude »

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?
a-v-o
Süßwasserpirat
Süßwasserpirat
Beiträge: 258
Registriert: 22.09.2002, 21:28
Kontaktdaten:

Beitrag von a-v-o »

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);
}
Sharalamude

Beitrag von Sharalamude »

ein ganz klein bischen kompliziert... eine frage: ich muss nur xy immer in die zahl bzw. in den namen des guis umändern und sonst alles so lassen, ja?
Gast

Beitrag von Gast »

achso und dieses SetGUIPosition(xy,mouse.x+2,mouse.y-2); kann ich ganz löschen, oder?
a-v-o
Süßwasserpirat
Süßwasserpirat
Beiträge: 258
Registriert: 22.09.2002, 21:28
Kontaktdaten:

Beitrag von a-v-o »

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.
Sharalamude

Beitrag von Sharalamude »

funzelt nich, neben der maus erscheint einfach kein text :(
a-v-o
Süßwasserpirat
Süßwasserpirat
Beiträge: 258
Registriert: 22.09.2002, 21:28
Kontaktdaten:

Beitrag von a-v-o »

poste mal den Scriptteil hier, vielleicht ein Klammerfehler oder sowas.
Sharalamude

Beitrag von Sharalamude »

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); 
}
a-v-o
Süßwasserpirat
Süßwasserpirat
Beiträge: 258
Registriert: 22.09.2002, 21:28
Kontaktdaten:

Beitrag von a-v-o »

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.
Sharalamude

Beitrag von Sharalamude »

toll, der text wird neben der maus angezeigt, aber trotzdem gibts nen error, wenn ich die maus nach unten rechts bewege!
a-v-o
Süßwasserpirat
Süßwasserpirat
Beiträge: 258
Registriert: 22.09.2002, 21:28
Kontaktdaten:

Beitrag von a-v-o »

a) Versuch es mit kleineren MAX-Werten.
b) Welche AGS-Version benutzt du und in welcher Auflösung ist dein Spiel?
Gast

Beitrag von Gast »

Version 2.6
hab auflösung 800x600 und das auch dementsprechend geändert
a-v-o
Süßwasserpirat
Süßwasserpirat
Beiträge: 258
Registriert: 22.09.2002, 21:28
Kontaktdaten:

Beitrag von a-v-o »

In der Vorgängerversion gab es ein Problem bei der 800x600 Auflösung. Ich weiss nicht, ob das inzwischen beseitigt wurde. Ich werd's mal testen.
Sharalamude

Beitrag von Sharalamude »

Könnte ich dir die Daten denn sonst per eMail zukommen lassen, damit du gucken könntest, ob ich keinen Flüchtigkeitsfehler oder so gemacht habe ?
a-v-o
Süßwasserpirat
Süßwasserpirat
Beiträge: 258
Registriert: 22.09.2002, 21:28
Kontaktdaten:

Beitrag von a-v-o »

Sicher kannst du das:
a-v-o@web.de

oder FTP-Upload:
ftp://a-v-o.selfhost.de/upload
Antworten