08.09.2019 Views

Progettazione e Sviluppo di un Multiplayer Online Game su Reti Peer-to-Peer

Alma Mater Studiorum Universit`a degli Studi di Bologna Facolta` di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Scienze di Internet Tesi di Laurea in Laboratorio di Programmazione Internet

Alma Mater Studiorum Universit`a degli Studi di Bologna
Facolta` di Scienze Matematiche, Fisiche e Naturali
Corso di Laurea in Scienze di Internet
Tesi di Laurea in Laboratorio di Programmazione Internet

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

90 CAPITOLO 3. IMPLEMENTAZIONE<br />

zione Au<strong>di</strong>o e la simulazione della fisica, sono infatti delegati agli strumenti<br />

messi a <strong>di</strong>sposizione da Unity3D.<br />

Quest’ultimo permette <strong>di</strong> definire i comportamenti che caratterizzano gli elementi<br />

presenti nella scena, me<strong>di</strong>ante <strong>un</strong> sistema <strong>di</strong> “Scripting” basa<strong>to</strong> <strong>su</strong>lla<br />

classe “Behaviour”.<br />

La classe principale, ContexView, concretizza il contes<strong>to</strong> “View” e fa da<br />

“Bridge” tra ques<strong>to</strong> ed il contes<strong>to</strong> “Logic” via composition. Ri<strong>su</strong>lta essere<br />

quin<strong>di</strong> il p<strong>un</strong><strong>to</strong> d’accesso a tutti i Layer sot<strong>to</strong>stanti (Figura 3.14).<br />

Figura 3.14: Catena dei Layer, legati via composition<br />

Parallelamente la classe ViewContextSync, estesa dalla classe Behaviour,<br />

si occupa della sincronizzazione tra il contes<strong>to</strong> logico e quello vi<strong>su</strong>ale.<br />

Ad ogni iterazione, infatti, esegue <strong>un</strong> polling <strong>su</strong>l Data Layer, controllando<br />

che non vi siano componenti logici taggati con il tag “View” senza <strong>un</strong>a<br />

rispettiva controparte vi<strong>su</strong>ale all’interno della scena 3D. Quando ciò accade,<br />

viene istanzia<strong>to</strong> au<strong>to</strong>maticamente <strong>un</strong> elemen<strong>to</strong> grafico ed applicata ad esso<br />

<strong>un</strong>a classe (che segue la naming convention “[nome componente]Script”),<br />

estesa da ComponentScript (Behaviour), che ne definisce il comportamen<strong>to</strong><br />

(si veda 2.6).<br />

La classe ComponentScript è definita secondo il seguente schema:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!