Inform e Glulx/Inform e Glulx/L'allineamento delle immagini
L'allineamento delle immagini
[modifica | modifica sorgente]Passiamo ora al secondo file di esempio (sgw_test_it_ALIGNMENT
):
Constant Story "Test per sgw"; Constant Headline "^Simple Glulxe Wrapper (sgw) ^di Alessandro Schillaci^^";
Include "Parser"; Include "sgw.h"; ! Inclusione della libreria SGW Include "Infglk";
Object LibraryMessages with before [; LMODE1 : lookmode = 2; Message_lmode(1); rtrue; LMODE2 : lookmode = 2; Message_lmode(2); rtrue; LMODE3 : lookmode = 2; Message_lmode(3); rtrue; ];
Include "VerbLib"; Include "Replace"; Include "sgw_test_it_ALIGNMENT.bli";
! ---------------------------------------------------------------------- Object room_1 "room 1" with description [; print "Una semplice stanza di esempio. Stanza 1.^"; viewImageLeft(room1); rtrue; ], cant_go "Puoi muoverti solo a nord, verso la stanza 2.", n_to room_2, has light;
Object room_2 "room 2" with description [; print "Una semplice stanza di esempio. Stanza 2.^"; viewImageCenter(room2, 620); rtrue; ], cant_go "Puoi muoverti a nord verso la stanza 3 oppure a sud, verso la stanza 1.", n_to room_3, s_to room_1, has light;
Object room_3 "room 3" with description [; print "Una semplice stanza di esempio. Stanza 3.^"; viewImageRight(room3, 620); rtrue; ], cant_go "Puoi muoverti solo a sud, verso la stanza 2.", s_to room_2, has light;
! ---------------------------------------------------------------------- [ Initialise; initializeSGW(240); ! Imposta la finestra grafica alta 240 pixel location = room_1; lookmode = 2; viewImageLeft(room1); ! Quando entro in una stanza ne visualizzo l'immagine relativa playSound(chan1,rumble,1,VOLUME_HIGH); playSound(chan2,heart,-1,VOLUME_NORMAL); ];
[Message_lmode x; if (x == 1 or 3) print " supporta solo la modalit@`a ~completa~, che d@`a descrizioni lunghe per tutti i luoghi (anche se gi@`a visitati).^"; else print " @`e gi@`a in modalit@`a completa.^"; ];
! ---------------------------------------------------------------------- Include "ItalianG";
Se tutto è andato bene (e si spera di sì), il risultato ottenuto è il seguente:
Quando siamo nella prima stanza, viene chiamata la funzione viewImageLeft
e di conseguenza la prima immagine viene visualizzata alla sinistra dello schermo. Se ci dirigiamo a nord, ecco invece quello che accade:
Quando siamo nella seconda stanza, viene chiamata la funzione viewImageCenter
(alla quale si deve dare anche il valore della larghezza dell’immagine ➨ in questo caso 620) e di conseguenza la seconda immagine viene visualizzata al centro dello schermo. Dirigendoci infine ancora a nord:
ci ritroviamo nella terza e ultima stanza, dove viene chiamata la funzione viewImageRight
(alla quale occorre dare, come per la precedente, il valore 620 relativo alla larghezza dell’immagine) che visualizza la terza immagine alla destra dello schermo.