Difference between revisions of "User:Michel Lemmon/Script Base"
Jump to navigation
Jump to search
m (added to category) |
|||
(8 intermediate revisions by one other user not shown) | |||
Line 21: | Line 21: | ||
Non si parla di argomenti intermedi o avanzati (vedi lezioni appropriate). | Non si parla di argomenti intermedi o avanzati (vedi lezioni appropriate). | ||
# | # '''Ciao Avatar!''' le basi | ||
# | # '''Ti ho sentito''' il listen | ||
# | # '''Cambio colore''' gli stati | ||
# | # '''Scrittura Muta''' llSetTextCliccate sulla linguetta “Content” | ||
# | # '''Ti regalo una maglietta''' llGiveInventory | ||
</div> | </div> | ||
</div> | </div> | ||
<div id="box"> | <div id="box"> | ||
== | =='''Ciao Avatar''': le basi== | ||
<div style="padding: 0.5em"> | <div style="padding: 0.5em"> | ||
Esperimento pratico: Costruite un box | Esperimento pratico: Costruite un box | ||
Line 35: | Line 35: | ||
[[Image:crea.jpg]] | [[Image:crea.jpg]] | ||
Cliccate su “create” in alto a dx,compare una '''bacchetta magica''' | |||
[[Image:magica.jpg]] | |||
Cliccate da qualche parte per terra complimenti: avete creato un box | |||
[[Image:box.jpg]] | |||
</div> | |||
</div> | |||
<div id="box"> | |||
==Proprietà== | |||
<div style="padding: 0.5em"> | |||
Vi è comparsa anche una '''scheda''' simile a questa: | |||
[[Image:scheda.jpg]] | |||
Oppure una versione più piccola. | |||
Se avete la versione piccola cliccate sul tasto '''More''' per avere la versione completa di sinistra. | |||
[[Image:schedap.jpg]] | |||
Cambiate il '''Name:'''con qualcosa di significativo tipo: primo oggetto scriptato. | |||
Cliccate sulla linguetta '''Content''' | |||
E cliccate su '''New Script'''. Questa operazione crea effettivamente un nuovo script che si chiama '''New Script'''. In basso a sinistra vedete apparire il suo risultato | |||
[[Image:newscript.jpg]][[Image:script.jpg]] | |||
Complimenti: avete fatto il vostro primo script. | |||
</div> | |||
</div> | |||
<div id="box"> | |||
==Le prime modifiche== | |||
<div style="padding: 0.5em"> | |||
Fate doppio click sull’icona '''New Script''' | |||
[[Image:scriptedit.jpg]] | |||
E adesso studiamo questo primo '''programma'''. Notate che potete modificare il programma. | |||
Muovetevi con il mouse su: | |||
*llSay(0,'''Hello, Avatar!'''); | |||
e cambiatelo con | |||
*llSay(0,'''Ciao, Avatar!'''); | |||
poi premete il tasto '''Save''' che si sarà illuminato. | |||
[[Image:scripciao.jpg]] | |||
Il programma non appena salvato visualizzerà immediatamente la modifica in basso a sinistra. | |||
[[Image:risultato.jpg]] | |||
Mentre vi avrà detto mentre compilava e salvava nella finestra di '''editing''': | |||
[[Image:compila.jpg]] | |||
Se toccate l’oggetto in basso a sinistra comparirà: | |||
[[Image:tocca.jpg]] | |||
Come vedete c’è una precisa relazione fra quello che scrivete nella finestra di editing e quello che l’oggetto fa quando viene resettato oppure toccato. | |||
*State_entry: azione fatta al reset | |||
*Touch_start: azione fatta quando toccato | |||
[[Image:listato.jpg]] | |||
*llSay(0,'''qualcosa'''); | |||
è il comando da eseguire. Nell’editor se vi soffermate su una istruzione vi viene fornito un '''aiuto''' di cosa fa il comando. | |||
</div> | |||
</div> | |||
<div id="box"> | |||
==Anatomia del comando== | |||
<div style="padding: 0.5em"> | |||
[[Image:anatomia.jpg]] | |||
llSay(): nome del comando '''Say''' in inglese vuol dire '''parla'''. I comandi nello script sono l’equivalente dei verbi della grammatica. Dopo ogni comando fra parentesi tonde mettiamo i parametri, cioè gli oggetti usati dal comando. | |||
Nel nostro caso llSay() ha due oggetti: | |||
*Il canale su cui si parla (per adesso vale sempre 0) | |||
*La frase da visualizzare. Notate che le scritte sono in verde e racchiuse fra apicetti “”. | |||
Il linguaggio di programmazione di SecondLife si chiama lsl2 (seconda versione del linguaggio lsl). Presto vi sarà anche la versione '''mono'''. | |||
Assomiglia al linguaggio Java o C. Ma niente paura: è semplice (o almeno facciamo in modo che sia semplice per voi). | |||
Analizziamo ancora alcuni elementi della finestra di editing: | |||
[[Image:run.jpg]] | |||
Un programma che scrivete senza errori è normalmente in “running” vale a dire è eseguito da SecondLife. | |||
Se volete che l’oggetto si '''spenga''', vale a dire non parli più nè reagisca ai tocchi, basta che clicchiate questo box in modo che non sia + running. | |||
Il pulstante di reset è molto importante: | |||
[[Image:reset.jpg]] | |||
Serve per '''spegnere''' e '''riaccendere''' lo script in modo da ripartire da 0, un po’ come spegnere e riaccendere il computer quando comincia a fare stranezze. | |||
Proprio sopra il “running” c’è un tasto che se premuto vi fa vedere l’elenco di tutte le funzioni del linguaggio che potete utilizzare. | |||
[[Image:run.jpg]] | |||
Nel corso base vi faremo vedere solo alcune delle funzioni di lsl2. Le altre le vedrete nei corsi intermedi o avanzati. | |||
</div> | |||
</div> | |||
<div id="box"> | |||
==Permissions== | |||
<div style="padding: 0.5em"> | |||
Dal tab content, cliccando lo script con il tasto destro potete cambiarne le proprietà: | |||
(Oppure anche aprirlo, rinominarlo per dargli un nome più intelligente rispetto a “new script”) | |||
[[Image:proprieta.jpg]] | |||
Cliccando su properties potete cambiare il nome dello script e la sua descrizione. | |||
[[Image:proprietam.jpg]] | |||
Potete anche cambiare i '''permessi''' del vostro script. | |||
Nell’esempio lo script quando venduto o regalato ad altri avatar, potrà da loro solo essere rivenduto o regalato, ma non copiato o modificato. Per semplicità, per ora mettete la x su modify, copy, e transfer. | |||
</div> | |||
</div> | |||
<div id="box"> | |||
==Salvataggio nell’inventory== | |||
<div style="padding: 0.5em"> | |||
Quando siete soddisfatti del vostro oggetto scriptato,lo selezionate con il tasto destro e fate '''take''' per mettervelo nell’inventory. | |||
[[Image:take.jpg]] | |||
A questo punto dovreste vedervelo nel vostro inventory nella categoria '''Objects''': tasto destro e property per cambiare le permissions: può essere necessario rimettere i diritti di modify / copy. Noioso ma è così | |||
[[Image:object.jpg]] [[Image:nomeob.jpg]] | |||
</div> | |||
</div> | |||
<div id="box"> | |||
=='''Ti ho sentito'''== | |||
<div style="padding: 0.5em"> | |||
Abbiamo visto come fare un oggetto che | |||
*Parla | |||
*Sente quando è toccato | |||
In questa nuova sessione faremo un oggetto che “ascolta” quello che viene detto sulla chat. | |||
Per fare ciò create un altro box | |||
Create un '''new script''' come detto nella lezione precedente | |||
Copiate il seguente frammento nello state_entry: | |||
*llListen(0,””,NULL_KEY,””); | |||
e il seguente nuovo evento dopo il touch: | |||
listen(integer channel, string name, key id, string str) | |||
{ | |||
llSay(0,name+” ha detto “+str); | |||
} | |||
Il programma risultante sarà come segue: | |||
[[Image:listato2.jpg]] | |||
E parlando sulla chat dopo il salvataggio vedrete apparire: | |||
[[Image:risultato2.jpg]] | |||
Il nome Object appare perchè non avete cambiato il nome dell’oggetto (fatelo subito in modo che la scritta sia più significativa). | |||
Notate come la llSay riesca a '''comporre''' la stringa in uscita a partire dai '''parametri''' che le sono forniti. | |||
Nel nostro caso riceve il nome di chi sta parlando e la frase che sta dicendo e con il '''+''' le unisce insieme a formare una frase esplicita. | |||
</div> | |||
</div> | |||
<div id="box"> | |||
=='''Cambio colore'''== | |||
<div style="padding: 0.5em"> | |||
Faremo un oggetto scriptato che cambia colore ogni volta che viene toccato. | |||
Come vedete qui sotto usiamo diverse variabili: | |||
un intero per tenere a mente di che colore siamo e poi tre vettori per rappresentare i diversi colori. | |||
[[Image:colore.jpg]] | |||
La stessa cosa si può fare con gli stati. Alcuni li preferiscono: | |||
con gli stati si evita di avere variabili globali. | |||
Ma il programma rischia di essere parecchio più lungo | |||
[[Image:colore2.jpg]] | |||
[[Image:boxrosso.jpg]] [[Image:boxverde.jpg]] [[Image:boxblu.jpg]] | |||
</div> | |||
</div> | |||
<div id="box"> | |||
=='''Scrittura muta'''== | |||
<div style="padding: 0.5em"> | |||
Questo script rimane in ascolto e poi visualizza come intestazione '''muta''' sopra l’oggetto la persona che ha detto qualcosa e quello che ha detto. | |||
Interessante, vero? | |||
[[Image:scrittura.jpg]] | |||
[[Image:boxciao.jpg]] | |||
</div> | </div> | ||
</div> | </div> | ||
<div id="box"> | <div id="box"> | ||
== == | =='''Regalo una maglietta'''== | ||
<div style="padding: 0.5em"> | |||
Se avete una maglietta copy/transfer nel vostro inventory, trascinatela nel content del vostro oggetto e poi scrivete il seguente programmino: | |||
[[Image:inventory.jpg]] | |||
Toccando l’oggetto vi viene consegnata la maglietta | |||
[[Image:menu.jpg]] | |||
</div> | </div> | ||
</div> | </div> | ||
Line 44: | Line 247: | ||
==Ringraziamenti== | ==Ringraziamenti== | ||
<div style="padding: 0.5em"> | <div style="padding: 0.5em"> | ||
[[User:Salahzar Stenvaag|Salahzar Stenvaag]] | [[User:Salahzar Stenvaag|Coach:Salahzar Stenvaag]] | ||
</div> | </div> | ||
</div> | </div> | ||
Line 51: | Line 254: | ||
{{User:Michel_Lemmon/Michel_Quik_links_it}} | {{User:Michel_Lemmon/Michel_Quik_links_it}} | ||
|} | |} | ||
[[User:Michel Lemmon|Michel Lemmon]] | [[User:Michel Lemmon|Michel Lemmon]] 20:00, 11 march 2008(PST) | ||
[[category:Pagine italiane da wikificare]] |
Latest revision as of 13:08, 1 November 2009
Michel Lemmon 20:00, 11 march 2008(PST)