Hab's mit nem Label gelöst, funktioniert einwandfrei. Da ich es in der Sprachfarbe des Hauptcharakters habe und währenddessen das passende Speechfile abgespielt wird, dürfte man keinen Unterschied merken.
Danke noch mal für die Hilfe!
(Bis hierhin )
GUI wie in Monkey Island 3
- Campusanis
- Hobby-Archäologe
- Beiträge: 108
- Registriert: 06.01.2003, 13:22
- Kontaktdaten:
- Campusanis
- Hobby-Archäologe
- Beiträge: 108
- Registriert: 06.01.2003, 13:22
- Kontaktdaten:
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Ins global script:
Um die Abfrage erneut zu aktivieren, einfach mouse_moved wieder auf 0 setzen.
Code: Alles auswählen
int mouse_moved=0;
int mx=mouse.x;
int my=mouse.y;
function repeatedly_execute() {
if (mouse_moved==0 && (mx!=mouse.x || my!=mouse.y)) {
mx=mouse.x;
my=mouse.y;
mouse_moved=1;
}
}
Use gopher repellent on funny little man
- Campusanis
- Hobby-Archäologe
- Beiträge: 108
- Registriert: 06.01.2003, 13:22
- Kontaktdaten:
Danke erstmal, sieht gut aus.
Hab's jetzt aber so eingebunden, wie du geschrieben hast, aber es will nicht. Hier mal der Code, um den es geht:
Wie gesagt, entweder wenn man die linke Maustaste 20 Einheiten gehalten hat oder wenn man während dem Links halten die Maus bewegt, soll sich das Interface öffnen.
Hab's jetzt aber so eingebunden, wie du geschrieben hast, aber es will nicht. Hier mal der Code, um den es geht:
Code: Alles auswählen
if (IsButtonDown(LEFT) == 1) { timer++; mouse_moved=0;//While it's held, timer is increasing
if (timer >= 20 || mouse_moved == 1){
if (GetLocationType(mouse.x,mouse.y) != eLocationNothing) { //when you've held it for 20 (half a sec.), the GUI pops
SetGUIPosition(2,guix,guiy); //selfexplanatory? Oh, our GUI is numero 2.
InterfaceOn(2); //turn the GUI on
Mouse.UseModeGraphic(eModeLookat);
clicked=0; //guess what..
timer=0; //and this?
mouse_moved=1;
}
}
}
-
- Hobby-Archäologe
- Beiträge: 163
- Registriert: 28.04.2005, 16:26
- Wohnort: Mönchengladbach
außerhalb von repeatedly_execute
innerhalb von repeatedly_execute
obwohl es eigentlich keinen Unterschied macht, ob man nun ne halbe Sekunde wartet oder die Maus um einen Pixel bewegt...
Code: Alles auswählen
int
mouse_moved,timer, mx,my;
innerhalb von repeatedly_execute
Code: Alles auswählen
if (mouse.IsButtonDown(eMouseLeft) == 1) {
timer++;
if (mouse_moved==0 && ( mx != mouse.x || my != mouse.y) ) {
mx=mouse.x;
my=mouse.y;
mouse_moved=1;
}
if (timer >= 20 || mouse_moved == 1){
if (GetLocationType(mouse.x,mouse.y) != eLocationNothing) {
SetGUIPosition(2,guix,guiy);
InterfaceOn(2);
Mouse.UseModeGraphic(eModeLookat);
clicked=0;
timer=0;
mouse_moved=0;
}
}
}
else{
mx = mouse.x;
my = mouse.y;
mouse_moved = 0;
timer = 0;
}