# Il Costruttore script

Le applicazioni KDE possono essere controllate esternamente da un altro programma, da un prompt di terminale o da uno script di shell, usando il protocollo di comunicazione tra processi (&DBus;). &kstars; sfrutta questa possibilità per permettere in ogni momento la registrazione e riproduzione di complesse sequenze di eventi. Ciò può essere utile, ad esempio, per creare una dimostrazione didattica che illustri un concetto astronomico.

Il problema con gli script &DBus; è che scriverli è un po' come programmare, impresa che può apparire proibitiva a chi non ha esperienza in materia. Il Costruttore script fornisce un'interfaccia grafica (GUI) punta-e-fai-clic per realizzare gli script &DBus; di &kstars;, rendendo molto facile crearne anche di complessi.

## Introduzione al Costruttore script

Prima di spiegare come si usa il Costruttore script, introdurremo brevemente tutti i componenti dell'interfaccia grafica; per maggiori informazioni, utilizza la funzione "Che cos'è questo?".

Il Costruttore Script Costruttore script

Il Costruttore script è mostrato nell'immagine qui sopra. A sinistra c'è il riquadro Script corrente che mostra la lista di comandi inclusi nello script corrente. Il riquadro a destra è il Browser funzioni, con la lista di tutte le funzioni disponibili. Sotto il Browser funzioni c'è un pannello dove compare una breve documentazione sulla funzione evidenziata nel riquadro sovrastante. Sotto il riquadro Script corrente c'è il pannello Argomenti funzione; quando si seleziona una funzione nel riquadro Script corrente, in questo pannello appare il necessario per specificare il valore degli argomenti eventualmente richiesti.

In cima alla finestra c'è una fila di pulsanti che operano sullo script nel suo insieme. Da sinistra a destra: Nuovo script, Apri script, Salva script, Salva script come... e Prova script. La funzione di questi pulsanti dovrebbe essere ovvia, fatta forse eccezione per l'ultimo. Premendo Prova script lo script corrente sarà eseguito nella finestra principale di &kstars;. Prima di farlo ti consigliamo di spostare la finestra del Costruttore script, in modo che tu possa vedere i risultati.

Al centro della finestra c'è una fila verticale di pulsanti che operano su singole funzioni dello script. Dall'alto in basso: Aggiungi funzione, Elimina funzione, Copia funzione, Sposta in alto e Sposta in basso. Il pulsante Aggiungi funzione aggiunge la funzione selezionata nel Browser all'interno del riquadro Script corrente (puoi anche aggiungere una funzione con un doppio clic su di essa). Gli altri pulsanti operano sulla funzione selezionata nel riquadro Script corrente, con l'effetto di eliminarla, duplicarla o modificarne la posizione all'interno dello script.

## Utilizzo del Costruttore script

Per illustrare l'utilizzo del Costruttore script presenteremo un piccolo esempio. Scriveremo uno script che insegue la Luna mentre il tempo scorre a velocità accelerata.

Se vogliamo inseguire la Luna dobbiamo per prima cosa puntarla. La funzione lookToward ha precisamente questo scopo. Selezionala nel Browser funzioni e consulta la documentazione visualizzata nel pannello sottostante. Quindi premi il pulsante Aggiungi funzione per aggiungere la funzione nel riquadro Script corrente. Il pannello Argomenti funzione conterrà ora una casella chiamata Dir, che sta per "Direzione". Si tratta della direzione verso cui si vuol puntare il display. La lista contiene solo i punti cardinali, non la Luna o altri oggetti. Puoi inserire Luna manualmente o utilizzare la finestra Trova oggetto per selezionarla dalla lista di oggetti con nome. Nota che, come sempre, centrare un oggetto attiva automaticamente l'inseguimento, così che non c'è bisogno di aggiungere la funzione setTracking dopo lookToward.

Ora che abbiamo puntato la Luna vogliamo che il tempo scorra a una velocità superiore al normale. Utilizza allo scopo la funzione setClockScale. Aggiungila allo script facendo doppio clic su di essa nel Browser funzioni. Il pannello Argomenti funzione contiene ora il necessario per modificare il passo dell'orologio della simulazione. Porta il passo a tre ore.

Bene, abbiamo puntato la Luna e accelerato lo scorrere del tempo. Ora vogliamo solo che lo script attenda un certo numero di secondi mentre il display insegue la Luna. Aggiungi allo script la funzione waitFor, e utilizza il pannello Argomenti funzione per impostare a venti secondi il tempo di attesa.

Per finire, riportiamo il passo dell'orologio al valore normale di un secondo. Aggiungi un'altra istanza di setClockScale, e impostane il valore a un secondo.

Per la verità non abbiamo finito del tutto. Dovremmo assicurarci che il programma stia utilizzando le coordinate equatoriali prima che lo script inizi a inseguire la Luna con passo temporale accelerato. Altrimenti, se il display utilizza coordinate orizzontali, ruoterà assai rapidamente di grandi angoli mentre la Luna sorge e tramonta. Ciò può provocare parecchia confusione, ma lo si può evitare impostando l'opzione di visualizzazione UseAltAz a false. Per modificare una qualsiasi opzione di visualizzazione, utilizza la funzione changeViewOption. Aggiungila allo script ed esamina il pannello Argomenti funzione. C'è un pulsante che apre una lista di tutte le opzioni modificabili tramite changeViewOption. Dato che sappiamo di dover utilizzare l'opzione UseAltAz, potremmo semplicemente selezionarla dalla lista. Si tratta tuttavia di una lista piuttosto lunga, e non ci sono spiegazioni per le varie voci. Potrebbe quindi essere più semplice premere il pulsante Esamina albero, che aprirà una finestra con una vista ad albero delle opzioni di visualizzazione, divise per argomento. Inoltre ogni voce dispone di una breve spiegazione, ed è indicato il tipo di dati dell'argomento. Possiamo trovare UseAltAz nella categoria Opzioni mappa celeste. Selezionala e premi OK, ed essa comparirà all'interno del pannello Argomenti funzione. Infine, imposta il suo valore a false o 0.

Un'altra cosa: cambiare UseAltAz alla fine dello script non serve a granché; dobbiamo modificarlo prima di ogni altra cosa. Perciò assicurati che la funzione sia selezionata nel riquadro Script corrente, e premi il pulsante Sposta in alto fino a farla diventare la prima funzione.

Ora che abbiamo terminato lo script dobbiamo salvarlo su disco. Premi il pulsante Salva script. Si aprirà una finestra in cui puoi inserire un nome per lo script e uno per il suo autore. Inserisci Inseguire la Luna come nome, metti il tuo nome come autore e premi OK. Apparirà la finestra di dialogo standard "Salva file" di &kde;. Specifica un nome file per lo script e premi OK per salvarlo. Nota che, se il nome file non finisce per .kstars, l'estensione sarà aggiunta automaticamente. Se sei curioso, puoi esaminare lo script con un qualunque editor di testi.

Ora che abbiamo uno script completo possiamo eseguirlo in due modi diversi. È possibile eseguirlo da un prompt di terminale, purché &kstars; sia in esecuzione. In alternativa, puoi eseguire lo script da &kstars; tramite la voce Esegui script... nel menu File.