Newsgroup: it.comp.giochi.avventure.testuali
Titolo: Una interfaccia più pulita..

Salve a tutti,
sto cercando di rifinire la mia at per ottenere un comportamento simile a quello dell'ottima applicazione text fiction per android.
Tale programmino, purtroppo compatibile solo con zmachine, permette di avere una comoda barra con bottoni personalizzabili sotto la linea di comando.
Inoltre cliccando su qualsiasi parola del testo è possibile copiarla nella linea di comando, manipolarla o eseguirla come target di una delle azioni definite dai bottoni.
Questo potenzia di infinite volte la fruibilità di tale giochi, sopratutto per un telefonino.
La mia idea, ma accetto suggerimenti, è quella di implementare tale funzione usando gli hyperlink, proprio a livello di inform.
In tal modo si potrebbe raggiungere tale comportamento anche con l'interprete quixe,che come sapete richiede solo java e è piattaforma-indipendente.
Mi spiego meglio: quello che sto cercando di fare( modificando la Keyword Interface di Aaron Reed e la ottima hyperlink interface di Leonardo Boselli, a cui vanno tutta la mia stima e i tutti i credits di questo mondo) è creare un hyperlink che copi il comando nella linea invece che eseguirlo. Tale comando potrebbe poi venire modificato prima di essere eseguito o essere fatto oggetto di uno dei bottoni che ho creato modificando l'interfaccia di Leonardo.
 
I problemi che sto avendo sono:
1] modificare la estensione di Emily short, su cui quella di Leonardo è basata per copiare in comando dalla tabella degli hyperlink nella linea.
Come fare?
Sto cercando da un pó un comando che inserisca un "[testo]" nella riga di comando senza eseguirlo. Ma non riesco a venirne a capo, avete suggerimenti?
 
2] rimuovere la sottolineatura dagli hyperlink.
Questo per me è noiosissimo e semplifica molto il gioco.
Mi piacerebbe poter mantenere sia la possibilità di avere hyperlink nascosti(per i mobiles) sia la stupenda riga di comando; senza avere alterazioni visive.
Ma non mi pare possibile (stando a quanto ho letto) farlo a livello di inform.
Cercherò successivamente di modificare quixe.
Anche di questo, qualcuno sa qualcosa?
 
 
Qualcuno ha qualche idea? Vorrei che questo fosse un pó un topic( che quando ho tempo riposteró sul  forum inglese) di brainstorming.
Ora, non ho nessuna intenzione di chiedere che il lavoro venga fatto al posto mio, ma vorrei cercare di capire se secondo voi sia meglio provare a fare tutto ciò a livello di inform o farlo fare a quixe. O ancora aspettare che text fiction supporti i glulx.
 
Ringrazio chiunque dovesse rispondermi, anche solo per dirmi che non è fattibile o che, come spero, esiste questo semplicissimo comando che mi è sfuggito.;)

 O ancora aspettare che text fiction supporti i glulx.
 
Ho letto che l'ultimo gioco di Andrew Plotkin (Hadean Lands), basat0 su glulx, riesce a girare su Android grazie a una versione non ancora rilasciata di Twisty. Non so che interfaccia ha Twisty (il mio vecchio cellulare non l'installa), ma potresti dare un'occhiata: 
https://bitbucket.org/sussman/twisty/downloads
 

Salve Leonardo,
 
Inizio dicendo che conosco twisty e ho già provato l'ultima versione ma purtroppo l'interfaccia è davvero scarna, anche se effettivamente fa andare i glulx!;)
 
Come seconda cosa, guarderò come togliere la sottileneatura nel file di quixe.
 
E ora la cosa che più mi preme. 
Penso di aver trovato come fare a raggiungere almeno un obiettivo:
Usando il comando change the player's command input to "1234"! 
Ho in mente come fare per far si che premendo l'hyperlink per tale e poi premendo un hyperlink per un oggetto si prenda quell'oggetto!
 
Dopo una settimana a cercare lo ho trovato proprio oggi.
Vi terrò aggiornati

 Vi terrò aggiornati
 
Grazie. Non ho ben capito, ma sono contento che risolva il problema.

Come promesso, e nella speranza che qualcuno possa contribuire, invio lo zip del poco lavoro che sono riuscito a fare finora.
Sono i sorgenti di un test e alcuni estensioni.
 
Quello che mi preme:
 
1- Cambiare le descrizioni delle stanze per renderle attraverso un hyperlink, come nella Hyperlink Interface di L. Boselli, che userei, ma che purtroppo non è compatibile con l'estensione Inline Hyperlinks che preferisco.
 
2- Quello che ho fatto è fare si che una azione venga memorizzata attraverso "perform AZIONE" e poi il comando successivo venga usato come oggetto della azione stessa "AZIONE OGGETTO". Nonostante gli hyperlink funzionino per quasi tutto, compreso l'help menu e i dialoghi, non sono ancora riuscito a far funzionare le azioni con multipli oggetti.
Servono veramente suggerimenti :). Per adesso c'è un solo tasto con azione su oggetti multipli: combine per me dovrebbe funzionare, ma non è così (si vedano, per chi vuole, le sorgenti).
 
Quello che vorrei fare in futuro è riuscire a fare una interfaccia simile a quella di 
http://www.youdev.it/if/Titolo/play.html
 . Oltre ai colori degli hyperlink, che ho capito come cambiare, questa configurazione di quixe ha il pregio di essere perfetta per il mobile!  Infatti a differenza di quella standard, non porta in primo piano la tastiera ogni volta che si tocca nella pagina(perfetto per gli hyperlink). Leonardo, posso sapere come ha ottenuto questo comportamento?
 
PS: le estensioni non sono per il rilascio ancora, solo per questo il codice è privo di crediti e nomi. :)
 
 
https://drive.google.com/file/d/0B9pulIPFkJODdklnNDhDSXhtbWc/view?usp=sharing
 

 Leonardo, posso sapere come ha ottenuto questo comportamento?
 
Premesso che non sapevo di aver ottenuto questo effetto (ho provato solo via browser su PC), penso che sia dovuto al fatto che tolgo il focus alla casella di testo che accetta l'input del giocatore.
Nel Quixe originale, il testo prodotto dall'avventura viene stampato tutto in una volta, causando un immediato scorrimento della finestra che disorienta il lettore. Io avrei preferito uno scorrimento rallentato come quello di "Undum". 
Ottenerlo non è stato facile, perché ho dovuto "hackerare" il codice di Quixe in punti che non conoscevo bene (le modifiche per generare codice HTML e per accedere al JavaScript della pagina erano più semplici) e il miglior effetto di scorrimento che sono riuscito a ottenere è quello che hai visto nell'esempio che ti ho indicato (non sarà il massimo, ma lo preferisco all'originale).
Tornando alla domanda, per ottenere lo scrolling, ho dovuto togliere il focus alla casella di input della linea di comando, altrimenti il browser sarebbe saltato comunque alla fine del testo per visulizzare l'input, ignorando lo scrolling rallentato. Il focus lo ripristino sono alla fine, mediante un'opportuna funzione JavaScript.
Non so se è questo che evita l'apertura della tastiera software, ma sono contento che non si apra, visto che per un'interfaccia punta e clicca è particolarmente fastidioso, soprattutto su schermi piccoli.

Sto cercando di ottenere lo stesso comportamento usando la funzione setfocus, come in questa guida. 
https://docs.oracle.com/javase/tutorial/uiswing/misc/focus.html
 
 
Tuttavia non riesco a capire come sia riuscito a ripristinare il focus a comando completato. 
Ho ottenuto un comportamento abbastanza simile, a lavoro ultimato aggiornerò i files.
 
E poi, non conoscevo UNDUM e ne sono entusiasta, anche se mi pare di capire che non funzioni con glulx. 
Ho poi letto qui che lei aveva intenzione di lavorarci un pò... 
 
https://groups.google.com/forum/#!topic/it.comp.giochi.avventure.testuali/ddZAvLkxFnc
 
 
Posso chiedere se c'è stato qualche sviluppo?;) 

 Ho poi letto qui che lei aveva intenzione di lavorarci un pò...
 
L'intenzione era quella di usare lo scrolling di UNDUM in Quixe. Non era possibile per vari motivi e ho scritto del codice apposito. Quindi gli sviluppi sono quelli che si possono vedere nel link che ho indicato qualche post fa.

Buonasera ;)
Ho un piccolo aggiornamento su quello che sto facendo:
 
Ho affrontato alcune difficoltà nel cercare di rimodificare a mia volta le estensioni di Leonardo perché mi sono accorto che in realtà la modifica a glkote (come in "titolo") non permette proprio l'uso della tastiera su mobile!;(
 
In realtà ho poi rinunciato a usare le versioni di Leonardo perché ho scoperto che quixe ora supporta glulx con immagini e suoni!! ;);););)Per ora solo nella branca di eeevedev che è in attesa di essere unita su github.
Sto cercando di modificare il JavaScript di quest'ultima per fare si che la tastiera venga nascosta su android dopo l'avvio di un comando. In tal modo si potrebbero usare sia gli hyperlink che la tastiera, differentemente da quanto accade cpn "titolo".
Vorrei usare la funzione blur per togliere il focus da gameport, cosi come nell'esempio qui
 
http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_text_focus
 
 
Con il tasto la funzione è efficace, però vorrei metterla in automatico all'esecuzione di un comando.
Leonardo, può aiutarmi a capire dove mettere la stringa? Mi pare di aver capito che la sua stringa agisca in questo modo ripristinando il fuoco con lastinput dopo un comando.
Ho capito quale è la linea di cui parlava al post precedente, ma non sto riuscendo a capire a che punto della linea devo metterlo.

 Ho capito quale è la linea di cui parlava al post precedente, ma non sto riuscendo a capire a che punto della linea devo metterlo.
 
Forse deve essere messo al punto di lastinput.focus()? Però non so come funziona blur. Appena ho un po' di tempo gli darò un'occhiata.

Grazie, davvero. 
Ho provato a metterla nella stessa linea del suo lastinput ma non ho sortito alcun effetto.
Nel frattempo lascio il link di quixe.;)
 
 
https://github.com/eevee/quixe?files=1
 


Ma funziona con immagini e suoni? C'è scritto che non li supporta ancora.

Si, io stesso lo sto usando! c'è una demo qui ;)
http://eblong.com/zarf/glulx/quixe/
 
 
L'importante è rigenerare il file gioco.JS come spiegato qui!
 
http://eblong.com/zarf/glulx/quixe/
 


Qual è la demo con immagini e suoni? Non la trovo.


La pagina dice:
Quixe currently supports text buffer and grid windows, character and line input, timers, and hyperlinks. It does not (yet) support graphics, sound, or style hints.

Cavolo. 
Ieri ho risposto tramite il cellulare e ho sbagliato a copiare il link. 
Qui c'è la demo
http://lexyeevee.tumblr.com/post/97199206477/hackin-on-quixe
 


Aaah! Adesso si comincia a ragionare. Me lo scarico subito!

Non sto facendo un passo in avanti da questo punto di vista. ;(
Sopratutto perchè: ho scritto allo sviluppatore che dice di non avere tempo ora perchè impegnato in uno dei suoi tanti progetti[:)]; perchè quixe è scritto senza descrizione di nulla e risulta per me impossibile decifrarlo.
Mi rimane una sola strada...
Leonardo posso sapere come ha potuto integrare java in inform 7 in modo che quixe accetti i comandi in java scritti direttamente nel file gblorb? Come spiegato nei suoi video?

 Leonardo posso sapere come ha potuto integrare java in inform 7 in modo che quixe accetti i comandi in java scritti direttamente nel file gblorb? Come spiegato nei suoi video?
 
Non ho integrato JavaScript in Inform 7. Nei testi dell'avventura che normalmente verrebbero stampati a schermo, possono comparire sequenze come questa: "La somma di 2 e 3 è $<2+3>$".
L'effetto che si ottiene scrivendo la linea seguente (che è solo un esempio che non serve a nulla, ma con la stessa tecnica si può eseguire qualsiasi codice JavaScript nella pagina HTML dell'avventura):
 
  say "La somma di 2 e 3 è $<2+3>$";
 
è un testo stampato a schermo che dice:
 
  La somma di 2 e 3 è 5.
 
Quel "2+3" tra $< e >$ viene eseguito come codice JavaScript con una semplice chiamata alla funzione JavaScript eval().
 
Per un esempio, è possibile provare: 
http://www.youdev.it/milleuna/_Javascript_DEMO/play.html
 
 
Come ho ottenuto l'effetto? Modificando Quixe nelle funzioni che stampano i testi sullo schermo. Prima di stampare il testo, viene eseguita una ricerca dei delimitatori $< >$ e viene eseguito il codice racchiuso, sostituendo quel testo con il risultato.
 
Non so se questo metodo può servire anche per i tuoi scopi. A me serviva per visualizzare immagini e suoni (effetto ormai inutile con la nuova versione di Quixe), ma anche per eseguire qualunque codice JavaScript, ottenendo effetti che vanno ben oltre le capacità di una macchina virtuale Glulx.
 
Per trovare le mie modifiche, cerca il testo LEO nella versione di Quixe che ho modificato. Se qualcosa non è chiaro, chiedi pure.


 
Mi sembra un'ottima strategia per inserire delle callback, qualora
fossero necessarie.
 

Ok, io provo a domandare ancora perchè non ho davvero compreso come far eseguire una funzione complessa a quixe.
Ho modificato quixe (la versione che supporta suoni e immagini) seguendo le modifiche di Leonardo e ora supporta java.
Ora vorrei che venisse eseguita la funzione .blur().
Ho provato:
 
1) mettendo nella sorgente say "document.getElementById([quotation mark]windowport[quotation mark]).blur();" --> ottengo la barra rossa in quixe con Quixe run: TypeError: Cannot read property 'blur' of null Cannot read property 'blur' of null TypeError.
 
2) definendo nel manifest 
 
</script>
function losefocus() {
    document.getElementsById('windowport').blur();
}
</script>
 
e facendo esequire nella sorgente say ""losefocus().
 
---> ottengo la barra con scritto Quixe run: ReferenceError: losefocus is not defined losefocus is not defined ReferenceError
 
3) mettendo in glkote.min.js 
 
function losefocus() {return document.getElementById("windowport").blur();}
 
---> ottengo quanto al punto 2.
 
 
 
Se metto nel manifest e cliccando sul bottone, effettivamente il focus viene perso e la tastiera scompare, perciò penso di essere sulla buona strada.
<button type="button" onclick="loseFocus()">Lose focus</button>
 
<script>
function loseFocus() {
    document.getElementById("windowport").blur();
}
</script>
 
 
 
Il problema è che sono consapevole di non aver capito esattamente cosa sto facendo :).
Come posso definire una tale funzione in modo che quixe lo capisca?
Scusate ancora per il disturbo.
Ale

Sono riuscito a far si che la tastiera si nasconda su android! Almeno nella versione 4.4.4 che è l'unica che ho modo di testare!
Non ho usato funzioni Java ma ho modificato quixe!
E poi, ho trovato questa estensione "Music by Daniel Stelzer" che rende compatibili le funzioni della Multiple Sounds di Massimo Stella con il nuovo quixe! ;)


Quindi il problema è risolto?

Si, sono riuscito a fare un pò quello che volevo.:)