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.

40 CAPITOLO 2. ARCHITETTURA SOFTWARE<br />

essere converti<strong>to</strong> <strong>di</strong>rettamente, dal momen<strong>to</strong> che si tratta <strong>di</strong> <strong>un</strong> tipo <strong>di</strong> variabile<br />

troppo generico, e non è possibile quin<strong>di</strong> accostarlo sempre ad <strong>un</strong> <strong>un</strong>ico<br />

tipo <strong>di</strong> elemen<strong>to</strong> grafico: in <strong>un</strong> FPS, sia il valore dell’HP 13 che il numero <strong>di</strong><br />

m<strong>un</strong>izioni <strong>di</strong>sponibili sono rappresentati nel Data Layer attraverso componenti<br />

<strong>di</strong> tipo Int, ma a livello grafico possono essere vi<strong>su</strong>alizzati in maniera<br />

del tut<strong>to</strong> <strong>di</strong>fferente tra loro.<br />

Quin<strong>di</strong>, per ques<strong>to</strong> tipo <strong>di</strong> componenti, è necessario creare manualmente gli<br />

elementi vi<strong>su</strong>ali ed implementare <strong>un</strong>a logica <strong>di</strong> sincronizzazione con il rispettivo<br />

componente del Data Layer (<strong>di</strong> soli<strong>to</strong> me<strong>di</strong>ante sistemi che utilizzano<br />

l’Observer Pattern).<br />

Esis<strong>to</strong>no però alc<strong>un</strong>i componenti che possono essere inseriti in <strong>un</strong> logica<br />

<strong>di</strong> au<strong>to</strong>mazione <strong>di</strong> tale processo. È il caso dei componenti <strong>di</strong> tipo Object3D<br />

e dei <strong>su</strong>oi derivati.<br />

Un componente <strong>di</strong> tipo Object3D verrà trasforma<strong>to</strong> in <strong>un</strong> ogget<strong>to</strong> grafico<br />

<strong>di</strong> tipo Object3D. Allo stesso modo <strong>un</strong> componente <strong>di</strong> tipo Bullet (si veda<br />

esempi precedenti) verrà trasforma<strong>to</strong> in <strong>un</strong> ogget<strong>to</strong> grafico <strong>di</strong> tipo Bullet.<br />

In generale ogni componente tagga<strong>to</strong>, a livello <strong>di</strong> definizione <strong>di</strong> classe, con<br />

il tag “View”, quando esiste <strong>un</strong>a corrispondenza 1-a-1 tra componente Data<br />

Layer e classe View, soggiace a ques<strong>to</strong> tipo <strong>di</strong> au<strong>to</strong>matismo: basterà infatti<br />

creare <strong>un</strong> componente logico per vederlo apparire <strong>su</strong> schermo all’iterazione<br />

<strong>su</strong>ccessiva (Figura 2.15).<br />

Il Layer View non si limita solo a rappresentare il contenu<strong>to</strong> del Layer<br />

Logic e del Data Layer, operando quin<strong>di</strong> in sola lettura, ma, anzi, è da qui<br />

che tipicamente vengono lanciate le operazioni <strong>di</strong> scrittura e aggiornamen<strong>to</strong><br />

dei componenti logici:<br />

Ad ogni elemen<strong>to</strong> grafico genera<strong>to</strong> au<strong>to</strong>maticamente dal contes<strong>to</strong> vi<strong>su</strong>ale, viene<br />

“applicata” <strong>un</strong>’istanza <strong>di</strong> <strong>un</strong>a classe, estesa da “ComponentScript” che ne<br />

definisce il comportamen<strong>to</strong>.<br />

13 Health Point, p<strong>un</strong>ti vita / p<strong>un</strong>ti ferita. Unità <strong>di</strong> mi<strong>su</strong>ra che rappresenta lo sta<strong>to</strong> <strong>di</strong><br />

salute o il danno <strong>su</strong>bi<strong>to</strong> dal protagonista in molte tipologie <strong>di</strong> gioco

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

Saved successfully!

Ooh no, something went wrong!