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
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
3.6. LAYER VIEW 91<br />
• String LogicComponentID: attribu<strong>to</strong> al quale viene assegna<strong>to</strong> il valore<br />
del GlobalID appartenente allo SharedComponent che rappresenta lo<br />
sta<strong>to</strong> logico dell’elemen<strong>to</strong> grafico.<br />
• Update(): il me<strong>to</strong>do che viene invoca<strong>to</strong> ad ogni iterazione. Il <strong>su</strong>o comportamen<strong>to</strong><br />
<strong>di</strong> default, eventualmente mo<strong>di</strong>ficabile via override, prevede<br />
la chiamata <strong>di</strong> Update Writer() se lo SharedComponent assegna<strong>to</strong><br />
appartiene al contes<strong>to</strong> logico del Player. In caso contrario viene chiama<strong>to</strong><br />
Update Reader(). Infine, attraverso CheckDestroy(), viene verificata<br />
l’esistenza del componente logico all’interno del Data Layer:<br />
se ques<strong>to</strong> non è più presente, allora verrà <strong>di</strong>strut<strong>to</strong> l’elemen<strong>to</strong> grafico<br />
corrispondente (e <strong>di</strong> conseguenza anche il relativo ComponentScript)<br />
Ad esempio, il ComponentScript relativo al componente <strong>di</strong> tipo Character<br />
(cioè la classe CharacterScript), all’interno del me<strong>to</strong>do Update Writer()<br />
eseguirà l’aggiornamen<strong>to</strong> perio<strong>di</strong>co delle coor<strong>di</strong>nate e della rotazione del personaggio<br />
controlla<strong>to</strong> dal Player, mentre nel me<strong>to</strong>do Update Reader() vi sarà<br />
implementata <strong>un</strong>a logica <strong>di</strong> Dead Reckoning (Figura 3.15).<br />
Figura 3.15: CharacterScript