button-frage Teil2

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
ags noob

button-frage Teil2

Beitrag von ags noob »

ich bins wieder und will wieder was über buttons wissen. also dieses mal geht es um folgendes:
wenn die maus über einem von 5 buttons auf meinem gui ist sollen sich die ButtonPics der anderen verändern. wenn die maus dann wieder von dem button runter ist sollen die ButtonPics der anderen wieder normal werden.
ich habe es mal so versucht aber das funzt nett:

Code: Alles auswählen

if(interface==7){
    if(GetGUIObjectAt(mouse.x,mouse.y)==0){
      SetButtonPic(7, 1, 1, 98);
      SetButtonPic(7, 2, 1, 91);
      SetButtonPic(7, 3, 1, 104);
      SetButtonPic(7, 4, 1, 100);
    }
[...]
wenn die maus über button 0 ist dann passiert einfach garnichts. erst wenn ich button 0 anklicke verändern sich die ButtonPics wie gewünscht. ich will es aber so dass wenn ich mit der maus über einem button bin ohne ihn anzuklicken dass sich dann die ButtonPics der anderen buttons verändern. wie kann ich das erreichen?
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Die entsprechende Abfrage muss in die repeatedly_execute(), denn die on_interface_click() macht genau das, wie sie heißt, sie wird erst nach einem Klick aufgerufen.

Mit GetGuiAt kannst Du dann das GUI unter der Maus überprüfen.
Angenommen, dein GUI heißt fivebuttons, dann müßte es so aussehen:

Code: Alles auswählen

repeatedly_execute() {
  int x=mouse.x;
  int y=mouse.y;
  if (fivebuttons.Visible) {
    if (GetGuiAt(x, y)==fivebuttons) {
      // code
    }
  }
}
Use gopher repellent on funny little man
ags_noob

Beitrag von ags_noob »

#-o #-o #-o #-o #-o #-o #-o ](*,) ](*,) ](*,) ](*,) ](*,) ](*,)

schei... man! erst denken dann posten...aber wie mein name schon sagt...ich bin ein noob...
Benutzeravatar
-BigDaniel-
Süßwasserpirat
Süßwasserpirat
Beiträge: 304
Registriert: 18.09.2003, 15:19
Kontaktdaten:

Beitrag von -BigDaniel- »

Also ich hatte das selbe problem bei läuft es jetzt ich möchte allerdings noch einf rage dazu stellen wenn bei mri der mauszeiger auf dem button ist dann wird er z.B. zum POINTEr wenn er jetzt wieder auf GUI ist sol ler aber den letzt verwendeten habe und nicht einen bestimmten!
Projekte:
Galaxia Quest 100%
CABIN TROUBLE 100%
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Dann speichere den verwendeten Mauscursor in einer Variable und wenn die Maus vom GUI runtergeht, setzt Du ihn zurück.
Ich kann mich täuschen, aber ich glaub, Strazer hat vor ein paar Tagen genau das beantwortet.

Hier:
BEi GUI Kontakt change cursore!
http://www.adventure-treff.de/forum/vie ... php?t=7376
Use gopher repellent on funny little man
Benutzeravatar
-BigDaniel-
Süßwasserpirat
Süßwasserpirat
Beiträge: 304
Registriert: 18.09.2003, 15:19
Kontaktdaten:

Beitrag von -BigDaniel- »

ja ich weiß aber das will ich ja garnet machen!
du sprachst von einem cursor specihern in einer varibale wie amch ich das soll ich für jeden cursor eien variable festlegen?
geht das net einfacher?
Projekte:
Galaxia Quest 100%
CABIN TROUBLE 100%
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Sei mir nicht böse, aber schaust Du eigentlich mal ab und zu in die Hilfedatei?
Mode property (mouse)
(Formerly known as GetCursorMode, which is now obsolete)
(Formerly known as SetCursorMode, which is now obsolete)

int Mouse.Mode;

Gets/sets the current mode of the mouse cursor. This is one of the cursor modes from your Cursors tab (but with eMode prepended). For example, a cursor mode called "Walk to" on your cursors tab would be eModeWalkto.
Setting this changes both the appearance of the cursor and the Cursor Mode used if the player clicks on a hotspot.

Example:

if (mouse.Mode == eModeWalkto)
{
// code here
}

will execute the code only if the current cursor mode is MODE 0 (WALK).
Use gopher repellent on funny little man
Benutzeravatar
-BigDaniel-
Süßwasserpirat
Süßwasserpirat
Beiträge: 304
Registriert: 18.09.2003, 15:19
Kontaktdaten:

Beitrag von -BigDaniel- »

du verstehst meine frage nicht!

Also before der zeiger auf einem bestimmten button kjommt hat er ka eine X beliebige Form z.B. MODE_WALK, USE etc. allerdings soll dieser mode in einen speicher gesetzt werden da er ja X bellibig sein kann! Wenn man nun auf den Button kommt wechselt dieser dann zu dem vorgegebenden z.B. dem pointer geht man jetzt zurück auf das GUI soll der im speicher befindene Zeiger aufgerufen werden und ausgeführt werden!
Projekte:
Galaxia Quest 100%
CABIN TROUBLE 100%
Benutzeravatar
Floyd
Logik-Lord
Logik-Lord
Beiträge: 1088
Registriert: 14.03.2004, 19:59

...

Beitrag von Floyd »

Du weißt doch, wie man Variablen verwendet, wo also liegt das Problem? Du fragst einfach später ab, welchen Wert deine Variable hat. Z.B. wird bei 1 in den Gehen -, bei 2 in den Benutzen-, bei 3 in den Betrachten - Modus usw. geschaltet.
Smiley
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 163
Registriert: 28.04.2005, 16:26
Wohnort: Mönchengladbach

Beitrag von Smiley »

-BigDaniel- hat geschrieben:du verstehst meine frage nicht!

Also before der zeiger auf einem bestimmten button kjommt hat er ka eine X beliebige Form z.B. MODE_WALK, USE etc. allerdings soll dieser mode in einen speicher gesetzt werden da er ja X bellibig sein kann! Wenn man nun auf den Button kommt wechselt dieser dann zu dem vorgegebenden z.B. dem pointer geht man jetzt zurück auf das GUI soll der im speicher befindene Zeiger aufgerufen werden und ausgeführt werden!

Code: Alles auswählen

int
x = mouse.x;
y = mouse.y; 
vorcursor = -1;

function repeatedly_execute() {
  if (IsGuiOn(xxx) == 1) { //xxx ist die Gui Nummer
     if (GetGUIObjectAt(x,y) != -1){ //Maus ist über guicontroldingsbums
        vorcursor = GetCursorMode();
        SetCursorMode(MODE_POINTER);}
    else if (vorcursor != -1) {
            SetCursorMode(vorcursor);
            vorcursor = -1;}
}
}
Antworten