2 – scripting

35
www.dimensionex.net 2 – Scripting 2 – Scripting Eventi Elementi sul linguaggio Costrutti di controllo flusso Parametri impliciti Eventi di movimento Orientarsi nella documentazione Array e SET Corso Multiplayer Corso Multiplayer Applicazioni Multimediali Multiplayer su Web Applicazioni Multimediali Multiplayer su Web

Upload: sirius

Post on 05-Jan-2016

30 views

Category:

Documents


0 download

DESCRIPTION

Corso Multiplayer Applicazioni Multimediali Multiplayer su Web. 2 – Scripting. Eventi Elementi sul linguaggio Costrutti di controllo flusso Parametri impliciti Eventi di movimento Orientarsi nella documentazione Array e SET. EVENTO. A ogni cosa che succede corrisponde un EVENTO - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 2 – Scripting

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

Page 2: 2 – Scripting

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

Page 3: 2 – Scripting

www.dimensionex.net

EVENTO esempi EVENTO esempi

All’inizio del gioco Evento onStart Se esiste onStart, viene eseguito

Page 4: 2 – Scripting

www.dimensionex.net

EVENT EVENT

EVENT id_evento Istruzione Istruzione ..

End_EVENT

verificare Developers Ref.

Page 5: 2 – Scripting

www.dimensionex.net

EVENT EsempioEVENT Esempio

EVENT onStart Call PopMonster() ‘Mia funzione che fa apparire un

‘mostro in una stanza a caso

End_EVENT

Page 6: 2 – Scripting

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.

Page 7: 2 – Scripting

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)

Page 8: 2 – Scripting

www.dimensionex.net

EVENT Model: persona.onLookEVENT Model: persona.onLook

$OWNER$AGENT

Page 9: 2 – Scripting

www.dimensionex.net

EVENTO onLook EsempioEVENTO onLook Esempio

SCRIPTS

EVENT tizio.onLookSpeak $OWNER,$AGENT,“Ehi cos’hai da guardare?"

END_SCRIPTS

Page 10: 2 – Scripting

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

Page 11: 2 – Scripting

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

Page 12: 2 – Scripting

www.dimensionex.net

……a cosìa così

SCRIPTS

EVENT tizio.onLookSpeak “Ehi cos’hai da guardare?", “Lasciami in pace!“

END_SCRIPTS

Page 13: 2 – Scripting

www.dimensionex.net

Valori predefiniti Valori predefiniti

SYS (Voce di sistema) Usare in “da”

$WORLD (Tutti i giocatori connessi al gioco) Usare in “dest”

Page 14: 2 – Scripting

www.dimensionex.net

EVENTO onLook EsempioEVENTO onLook Esempio

SCRIPTS

EVENT tizio.onLookSpeak SYS,$WORLD,“Il giocatore “ + $AGENT + “ guarda “ + $OWNER

END_SCRIPTS

Page 15: 2 – Scripting

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)

Page 16: 2 – Scripting

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

Page 17: 2 – Scripting

www.dimensionex.net

Assegnazione – ricordare un valore Assegnazione – ricordare un valore

Compleanno = “26 Luglio” Print Compleanno

26 Luglio

Page 18: 2 – Scripting

www.dimensionex.net

If .. Else If .. Else

If (condizione)– Istruzioni

Else– Istruzioni

End_If

Niente THEN End_If e non End If

Page 19: 2 – Scripting

www.dimensionex.net

RndInt(N) RndInt(N)

Estrae un numero a caso da 1 a N e lo restituisce

Page 20: 2 – Scripting

www.dimensionex.net

If .. Else If .. Else

If RndInt(2) = 1Print “PARI!”

ElsePrint “DISPARI!”

End_If

Page 21: 2 – Scripting

www.dimensionex.net

EVENT Model: persona.onHearEVENT Model: persona.onHear

$OWNER$AGENT

$TARGET

Page 22: 2 – Scripting

www.dimensionex.net

Stampare i parametri implicitiStampare i parametri impliciti

Print “OWNER=“ + $OWNER + “ AGENT= “ + $AGENT + “ TARGET=“ + $TARGET

Page 23: 2 – Scripting

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

Page 24: 2 – Scripting

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

Page 25: 2 – Scripting

www.dimensionex.net

EVENT Model: stanza.onLooseEVENT Model: stanza.onLoose

$OWNER

$AGENT $TARGET

Page 26: 2 – Scripting

www.dimensionex.net

EVENT Model: persona.onExitEVENT Model: persona.onExit

$OWNER

$AGENT

$TARGET

Page 27: 2 – Scripting

www.dimensionex.net

EVENT Model: persona.onEnterEVENT Model: persona.onEnter

$OWNER

$AGENT

$TARGET

Page 28: 2 – Scripting

www.dimensionex.net

EVENT Model: stanza.onReceiveEVENT Model: stanza.onReceive

$OWNER

$AGENT (?)

$TARGET

Page 29: 2 – Scripting

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

Page 30: 2 – Scripting

www.dimensionex.net

1

“ciao”

2

“hola”

3

“hi”

4

“hello”

arrSaluti

ArrayArray

Page 31: 2 – Scripting

www.dimensionex.net

Array + RndInt(N) Array + RndInt(N)

arrSaluti = NewSet(“ciao,hola,hello”) Speak arrSaluti(RndInt(3))

Ciao Hello Ciao Hola

Page 32: 2 – Scripting

www.dimensionex.net

book crown scroll sword

setOggetti

SETSET

Page 33: 2 – Scripting

www.dimensionex.net

For Each Next For Each Next

For Each var In set– Istruzioni

Next

Attenzione a set e array

Page 34: 2 – Scripting

www.dimensionex.net

For Each Next + SETFor Each Next + SET

Print “personaggi presenti:”

For Each x In getCharactersIn(spiaggia)

Print x.name

Next

Page 35: 2 – Scripting

www.dimensionex.net

RiassuntoRiassunto

Eventi Elementi sul linguaggio Costrutti di controllo flusso Parametri impliciti Eventi di movimento Orientarsi nella documentazione Array e SET