Post on 01-May-2015
www.dimensionex.net
2 – Scripting2 – Scripting
– Eventi– Elementi sul linguaggio– Costrutti di controllo flusso– Parametri impliciti– Eventi di movimento– Orientarsi nella documentazione– Array e SET
Corso MultiplayerCorso MultiplayerApplicazioni Multimediali Multiplayer su WebApplicazioni Multimediali Multiplayer su Web
www.dimensionex.net
EVENTO EVENTO
A ogni cosa che succede corrisponde un EVENTO
A ogni EVENTO viene generata una chiamata
A ogni chiamata, se gli corrisponde del codice, questo viene ESEGUITO
www.dimensionex.net
EVENTO esempi EVENTO esempi
All’inizio del gioco Evento onStart Se esiste onStart, viene eseguito
www.dimensionex.net
EVENT EVENT
EVENT id_evento Istruzione Istruzione ..
End_EVENT
verificare Developers Ref.
www.dimensionex.net
EVENT EsempioEVENT Esempio
EVENT onStart Call PopMonster() ‘Mia funzione che fa apparire un
‘mostro in una stanza a caso
End_EVENT
www.dimensionex.net
EVENTO esempi EVENTO esempi
Un personaggio viene guardato (cliccato) Scatta l’evento persona.onLook Se esiste, l’evento viene eseguito e stop.
Scatta l’evento onLook (generico) Se esiste, l’evento viene eseguito.
www.dimensionex.net
Parametri implicitiParametri impliciti
$OWNER – chi possiede l’evento equivale a this in Java
$AGENT – chi ha iniziato l’azione $TARGET – terzo attore (a volte si usa, a
volte no)
www.dimensionex.net
EVENT Model: persona.onLookEVENT Model: persona.onLook
$OWNER$AGENT
www.dimensionex.net
EVENTO onLook EsempioEVENTO onLook Esempio
SCRIPTS
EVENT tizio.onLookSpeak $OWNER,$AGENT,“Ehi cos’hai da guardare?"
END_SCRIPTS
www.dimensionex.net
Speak Speak
Speak [da,][dest,] frase [, frase…]
“da”Default è $OWNER “dest”Default è $AGENT Se ci sono più frasi vengono stampate in ciclo
www.dimensionex.net
Speak da così…Speak da così…
SCRIPTS
EVENT tizio.onLookSpeak $OWNER,$AGENT,“Ehi cos’hai da guardare?", “Lasciami in pace!“
END_SCRIPTS
www.dimensionex.net
……a cosìa così
SCRIPTS
EVENT tizio.onLookSpeak “Ehi cos’hai da guardare?", “Lasciami in pace!“
END_SCRIPTS
www.dimensionex.net
Valori predefiniti Valori predefiniti
SYS (Voce di sistema) Usare in “da”
$WORLD (Tutti i giocatori connessi al gioco) Usare in “dest”
www.dimensionex.net
EVENTO onLook EsempioEVENTO onLook Esempio
SCRIPTS
EVENT tizio.onLookSpeak SYS,$WORLD,“Il giocatore “ + $AGENT + “ guarda “ + $OWNER
END_SCRIPTS
www.dimensionex.net
Object Model di CHARACTERS Object Model di CHARACTERS
Usare il punto . per fare riferimento a una proprietà
Persona.nameNome della persona
Persona.container Dove si trova la persona(oggetto)
Persona.container.id (id della stanza)
Persona.container.name (nome della stanza)
www.dimensionex.net
Print Print
Print [dest,] Che cosa [, che cosa…]
Print “In questa stanza c’è poca luce” Print “OWNER=“ + $OWNER + “
AGENT= “ + $AGENT + “ TARGET=“ + $TARGET
www.dimensionex.net
Assegnazione – ricordare un valore Assegnazione – ricordare un valore
Compleanno = “26 Luglio” Print Compleanno
26 Luglio
www.dimensionex.net
If .. Else If .. Else
If (condizione)– Istruzioni
Else– Istruzioni
End_If
Niente THEN End_If e non End If
www.dimensionex.net
RndInt(N) RndInt(N)
Estrae un numero a caso da 1 a N e lo restituisce
www.dimensionex.net
If .. Else If .. Else
If RndInt(2) = 1Print “PARI!”
ElsePrint “DISPARI!”
End_If
www.dimensionex.net
EVENT Model: persona.onHearEVENT Model: persona.onHear
$OWNER$AGENT
$TARGET
www.dimensionex.net
Stampare i parametri implicitiStampare i parametri impliciti
Print “OWNER=“ + $OWNER + “ AGENT= “ + $AGENT + “ TARGET=“ + $TARGET
www.dimensionex.net
Vedere il logVedere il log
Cartella system File debug#.log # = numero dello slot usato
NB.: Se non funziona rivedere impostazione debugTo= nel file worldnav#.properties
www.dimensionex.net
Eco di quanto dettoEco di quanto detto
EVENT persona.onHear Speak $OWNER,$AGENT,”Mi hai detto: “
+ $TARGET + “, ma che significa?” END_EVENT
www.dimensionex.net
EVENT Model: stanza.onLooseEVENT Model: stanza.onLoose
$OWNER
$AGENT $TARGET
www.dimensionex.net
EVENT Model: persona.onExitEVENT Model: persona.onExit
$OWNER
$AGENT
$TARGET
www.dimensionex.net
EVENT Model: persona.onEnterEVENT Model: persona.onEnter
$OWNER
$AGENT
$TARGET
www.dimensionex.net
EVENT Model: stanza.onReceiveEVENT Model: stanza.onReceive
$OWNER
$AGENT (?)
$TARGET
www.dimensionex.net
Consultare la Developers ReferenceConsultare la Developers Reference
Come funziona DimensioneX Configurazione Parte Design-time (DXW) Parte Run-Time (SmallBasic)
– Object Model degli oggetti– Eventi del sistema– Funzioni disponibili – Istruzioni disponibili
www.dimensionex.net
1
“ciao”
2
“hola”
3
“hi”
4
“hello”
arrSaluti
ArrayArray
www.dimensionex.net
Array + RndInt(N) Array + RndInt(N)
arrSaluti = NewSet(“ciao,hola,hello”) Speak arrSaluti(RndInt(3))
Ciao Hello Ciao Hola
www.dimensionex.net
book crown scroll sword
setOggetti
SETSET
www.dimensionex.net
For Each Next For Each Next
For Each var In set– Istruzioni
Next
Attenzione a set e array
www.dimensionex.net
For Each Next + SETFor Each Next + SET
Print “personaggi presenti:”
For Each x In getCharactersIn(spiaggia)
Print x.name
Next
www.dimensionex.net
RiassuntoRiassunto
Eventi Elementi sul linguaggio Costrutti di controllo flusso Parametri impliciti Eventi di movimento Orientarsi nella documentazione Array e SET