Inoltre potete controllare la posizione del mouse, il click, e i tasti premuti.
Potete usarla ad esempio per un caricamento personalizzato, per finestre con le opzioni, ecc...
Nel GMK trovate l'esempio, e per ogni funzione c'è un commento con la spiegazione. Screenshot:
Spoiler
NOTA: serve la dll GM .NET Layer per farla funzionare, e nella GEX non l'ho messa.
EDIT:
Funzioni della GEX:
- wcreate:
Crea una finestra, e restituisce il suo id.
Caption è il testo della finestra, x, y, width, height sono le dimensioni, autorefresh indica se aggiornare automaticamente la finestra, e se mettete true, su backcolor mettete il colore di sfondo e su drawcode mettete il codice da eseguire ogni volta prima di refreshare. - waddobject:
Imposta alcuni eventi per l'oggetto "object" in modo da farlo visualizzare sulla finestra "id".
Il codice dentro draw verrà cancellato, quindi mettilo nell'argument draw.
Verrà applicato solo alle instanze create dopo aver usato questa funzione. - wkeylist:
Restituisce la lista ds_list dei tasti premuti fino al momento in cui viene usata (la funzione).
Per evitare problemi dev'essere usata in ogni step (--> vedi wkeyclear), e non deve assolutamente essere usata da due object contemporaneamente, quindi fai che un solo oggetto di controllo assegni ad una variabile globale wkeylist ad ogni step (global.listatasti = wkeylist(idfinestra)). - wclickat:
Restituisce true se si clicca nella posizione/range specificato.
La posizione deve essere così: X|Y (ad es. 52|67) per controllare se il mouse clicca in quella posizione, o X1-X2|Y1-Y2 per controllare se il mouse clicca in quel rettangolo (ad es. 0-10|0-10).
Se si clicca e la posizione scritta non è valida restituisce la costante invalid (mentre se non si sta cliccando sul rettangolo restituisce false)
Se sull'argument2 mettete button_left, controllerà il click del tasto sinistro, con button_right quello destro, e con button_none nessuno, controllerà se la freccia si trova sopra quella posizione. - wclickobj:
Uguale a wclickat, solo che invece della posizione dovete mettere l'id dell'istanza. - wshow, whide, wclose:
Whow e whide mostrano/nascondono la finestra, mentre wclose la chiude, e non potrà più essere riaperta. - wclosed:
Restituisce false se la finestra specificata è stata chiusa. - wtarget:
Usando questa funzione, disegnerà sulla finestra anzichè sulla surface.
Mettendo come id la costante t_none, resetterà il target e disegnerà sulla finestra del gioco.
E' una forma rapida di surface_set_target(wsurface(id)) e di surface_reset_target() - wrefresh:
Aggiorna la finestra. - wsurface:
Restituisce l'id della surface della finestra. - wgetkey:
Forma non automatica di wkeylist:
Restituisce l'ultimo tasto premuto e lo toglie dalla queue dei tasti premuti (non confondetevi con la lista di wkeylist, non centra niente).
Ad esempio, se nella finestra si premono A e B, usando tre volte getkey, restituirà prima il codice del tasto A, poi quello di B e poi -1.
Restituisce la costante invalid (-1) se la lista è vuota. - wkeyclear:
Cancella il queue dei tasti premuti (non confondetevi con la lista di wkeylist, non centra niente).
A cosa serve? I tasti vengono aggiunti continuamente nella queue (una specie di lista) e non vengono mai cancellati, quindi potrebbe capitare (quando non usi wkeylist ad ogni step) che tu ottenga con getkey o keylist un tasto premuto un'ora fa. Questo perchè nelle finestre il controllo dei tasti avviene continuamente, non ogni 1 step.
Perciò se non usi wkeylist ad ogni step e non usi wgetkey finchè non restituisce -1 (quello che fa wkeylist, restituisce tutti i tasti premuti finchè) ad ogni step, usa wkeyclear ad ogni step.
Questo potrebbe sembrarti complicato, quindi limitati ad usare wkeylist ad ogni step, anche se non accedi alla sua lista.