Newsgroup: it.comp.giochi.avventure.testuali
Titolo: [INFORM] come fare un "backspace"?

esiste un modo per cancellare l'ultimo carattere stampato sullo schermo?
(zcode e glulx)
forse in zcode e' print "@@94H"; ??
e in glulx?
grazie,
Francesco
http://www.sottosuolo.info
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

(control-L).
Chiarito questo fatto, vediamo come si puo' risolvere il problema...
A cosa ti serve il backspace? Mi vengono due ipotesi in mente: per un
effetto di ''animazione'' o per togliere dei caratteri in eccesso (per
esempio la libreria ha gia' chiuso con un punto ma vuoi continuare la
frase per gli affari tuoi...)
Se ti serve un effetto di animazione, l'unica cosa che posso suggerirti
e' di smanacciare su una finestra TextGrid, invece che su un
TextBuffer.. ovviamente e' fuori dal "flusso" del testo standard ma
chissa'... magari ti e' sufficiente
Se invece hai dei caratteri "indesiderati" non tuoi mi vengono in mente
3 possibilita':
1) Modifichi il codice incriminato per non stamparli in primo luogo
(Replace ti e' amica :)
2) Selezioni la filter I/O facility di glulx e fai una routine che
ignori i caratteri indesiderati
3) Passi l'output su un memory stream glk e poi lo ristampi senza la
roba che non ti serve
Se ancora la soluzione non e' adatta devi spiegare meglio cosa intendi
fare...
Buon divertimento,
-- Lorenzo, guru autoproclamato di GLK

 OK. E' molto semplice! NON SI PUO'!!!!
mio dio. una notizia tristissima. dimmi che stai scherzando ti prego...
il problema e' che mi serve sia in ambiente zcode che sotto glulx...


btw...
un modo ci sarebbe (sotto glulx): intervenire su GGInitialise e creare la
finestra gg_mainwin come "text grid" (anziche' "text buffer").
come sai in una "text buffer" posso cancellare senza problemi un
carattere, e fare molto di piu': ho il controllo completo.
ho provato, e... "funziona" (sotto Glulxe e Zag); nel senso che Inform non
fa troppe storie: il gioco gira senza scoppiare.
il problema e' che occorre programmare (via Inform, anziche' LM)
*parecchie* cose, per far girare bene una "text buffer" come gg_mainwin:
- lo scrolling (verticale) del testo
- l'impaginazione (orizzontale) dei caratteri
- la ridisposizione del testo dopo un resize della finestra
la maggior parte delle cose, si dovrebbero poter fare intervenendo sul
comando "Print". teoricamente fattibile... ma:
1) quanto lavoro? risultati garantiti? ne vale la pena?
2) *soprattutto*, con quale "downgrade" di prestazioni?
non solo velocita' ridotta (forse), ma anche ridotte funzionalita' (es: ho
notato che sotto Glulxe non posso scorrere il testo precedente inserito in
una "text grid", a differenza della classica "text buffer").
francamente avvilito,


 chissa'... magari ti e' sufficiente
Cioe'... in pratica tu BUTTI VIA il textbuffer e fai tutto a
maniglia... complimenti :))
Perdi SOLO i font a spaziatura proporzionale, lo scrollback e qualche
altra vagonata di features di glk :))) Beh, fa molto retro, almeno...
Quindi devi riprogrammare il wordwrap (COME MINIMO) nonche' la
modalita' di editing (e quindi le frecccie e tutto il resto perdendo
ogni facilitazione delle glk).
Personalmente lo ritengo improponibile... (notare che fra l'altro line
input e key input sono incompatibili fra loro sulla stessa finestra...)
Adesso mi leggo il papagalo-3d per vedere se mi viene qualche idea
geniale...
Per esempio... un buon compromesso potrebbe essere: finestra principale
(TextBuffer), finestra di input (TextGrid) quando dai invio ricopi il
comando nella finestra principale con style_Input per mantenere la
'continuita' del discorso (come l'interprete xzip, se non ricordo
male)... certo hai comunque da implementare TUTTO l'editor di linea.
A quando il porting di readline per inform ? ormai ci siamo :P

 (TextBuffer), finestra di input (TextGrid)
in effetti ho pensato a qualcosa del genere... ma e' un po' "forzata",
rispetto allo standard attuale: lo sviluppatore di at sarebbe costretto ad
adottare un approccio un po' inconsueto *soltanto* per avere un input con
qualche "feature" in piu'...
in alternativa... si riprogramma tutto in modalita' *grafica* 8) ... (una
immagine = una lettera, scrolling da riprogrammare ecc.) ... velocita'??
mah
Francesco Sircana


Se la metti cosi' allora tanto vale buttare nel cesso le glk, tirare la
catenella e definire un'altra I/O facility per glulxe
Ovviamente completa di porting nei tre ambienti maggiormente in uso :))