Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Turistica”
(Pergola)
Salahzar Stenvaag
ALI – Accademia Land Italiane
Ottobre 2009
Introduzione
Pilotato da una notecard
Oggetto fisico “personale” su cui ci
si può “sedere”
Sulla notecard coordinate, titolo,
descrizione
Sequenza di frasi da dire mentre ci
si muove
Specifica della rotazione finale
Si muove verso prossima tappa con
un “touch”
All’ultimo touch torna alla posizione
pagina 2
Struttura Notecard
# Posizione iniziale, testo, colore,rotazione
<48,29,251>|Sono la guida, cliccami|<1,0,0>|<0,0,0>
arriveremo subito
FINE
pagina 3
Struttura del programma
Variabiliglobali (essenziali!!!!)
Funzioni di utilità (parse)
Stato default per copiare la notecard
in memoria
◦ State_entry: inizio lettura notecard
◦ Dataserver: per leggere via via le
varie righe
Stato ready (pronta per fare la
guida)
◦ State_entry: inizializza prima
“stazione”
◦ Touch_start: per passare prossima
pagina 4
Variabili globali
string notecard; // nome della notecard
integer line; // riga a cui siamo arrivati a
leggere
list lines; // copia della notecard senza #
commenti
llSetText
vector color; // colore del titolo
pos=(vector)llList2String(pieces,0)
;
text=llList2String(pieces,1);
pagina 6
Stato default state_entry
default
{
state_entry()
{
llSetStatus(STATUS_PHYSICS,FALSE);
llSetBuoyancy(1); // fluttua in aria
llSetText("Sono una guida
turistica",<1,1,1>,1);
notecard=llGetInventoryName(INVENTO
RY_NOTECARD,0);
lines=[]; pagina 7
Stato default data_server
dataserver(key id,string str)
{
state_entry()
{
line=0;
// trova pos, text, color
parse(llList2String(lines,line));
llSetText(text,color,1);
llSetPos(pos);
llSetRot(llEuler2Rot(DEG_TO_RAD*rot));
pagina 9
Stato ready touch_start
touch_start(integer total_number) {
line++;
if(text=="FINE“) {
llResetScript();
return;
}
parse(llList2String(lines,line));
llSetText(text,color,1); id=llTarget(pos,.3);
llSetStatus(STATUS_PHYSICS,TRUE);
llMoveToTarget(pos,secondi);
while(TRUE) {
line++;
text=llList2String(lines,line);
if(text=="FINE") return;
if(text=="") return; pagina 10
Stato ready at_target
at_target(integer tnum, vector pos,
vector our)
{
llTargetRemove(id);
llSetStatus(STATUS_PHYSICS,FALSE);
llSetPos(pos);
llSetRot(llEuler2Rot(DEG_TO_RAD*rot
));
llSay(0,"cliccami per la prossima
pagina 11