Ieri sera settimo e penultimo webcast della saga "Video Game Development". Argomento: Game Music and Sound Effect. Nulla di particolarmente eclatante ed interessante, dato che il tutto si riconduce bene o male alla struttura già vista nel webcast precedenti. In breve vi rimando alla pagina http://www.digipen.edu/webcast/ che è il sito ufficiale organizzatore della serie di webcast che ho seguito. Se scaricate i sorgenti all'url potete dare un'occhiata (cosa che farò anche io) al codice C# scritto finora.
Avevamo detto che l'oggetto Game è il padre di tutti. Esso contiene sprite, animazioni, background, i trooper e il condor e così via, fino ad inglobare tutti gli oggetti che compongono il gioco. Ieri sera finalmente sono stati aggiunti gli oggetti Music e Sound rispettivamente per gestire la musica di sottofondo e gli effetti sonori (lo sparo, per esempio, oppure la morte del nostro eroe). Ciascuno di questi oggetti ha un metodo Play che gli permette di suonare sfruttando le librerie DirectX. Annotazione ovvia: la musica non è interattiva, viene fatto il .Play all'inizio e basta. Ad ogni loop del gioco (ne avevamo parlato in precedenza) la funzione Update(); si occupa di controllare la proprietà IsPlaying. Se vale False, vuol dire che la musica è arrivata alla fine, e viene rilanciata facendo il .Play. I suoni invece vengono lanciati in corrispondenza di certi eventi: lo sparo quando si preme Spazio, e la morte quando uno dei cattivi tocca il buono (quest'ultima parte non era funzionante in quanto non era stato messo in piedi il meccanismo delle collisioni).
In pratica, quindi, avevamo un oggetto globale StarTrooper di tipo Game e cui vengono aggiunti TUTTI gli oggetti. Per esempio (vado a memoria) per creare ed aggiungere la colonna sonora, il codice era simile a:
Music background = new Music("music.wav");
StarTrooper.Add(background);
La prossima volta recensirò l'ultimo webcast, non ho ancora letto l'argomento. Poi mi piacerebbe studiare per bene il codice C# ed adattarlo ad un gioco di mia creazione e vedere un po' cosa ne tiro fuori. Lo potrò fare solo nel tempo libero, quindi si parla di tempi lunghi, però credo sia una buona occasione per avere a che fare con C#, finalmente. Ieri sera durante il webcast ho installato Visual C# 2005 beta 2, dato che comunque sia è l'unico modo che ho per aprire il progetto e compilare il sorgente. Ho chiesto ai relatori per quale motivo StarTrooper è stato programmato usando il framework 2.0: la risposta è che il codice fa uso dei famigerati generics di cui ho già sentito parlare. Altri motivi non ci sono. Finita l'installazione di Visual C#, tento di aprire il progetto e mi viene detto che devo installare anche l'SDK delle DirectX, altrimenti nisba.