Archive for 14 novembre 2009
Hello World – Guida SDL.NET
nov 14
Ok, dopo aver installato il nostro SDK è proprio ora di fare qualcosa di concreto. Perlomeno, ci proviamo. Per prima cosa apriamo il nostro Visual C# Express (al momento della scrittura uso la versione 2008, liberamente scaricabile dall’indirizzo http://www.microsoft.com/express/vcsharp/).
Dal menù File, in alto a sinistra, creiamo un nuovo progetto: ci si aprirà una nuova finestra dove dovremo decidere cosa fare. Selezioniamo “Applicazione Windows Form”, scegliamo il nome per il progetto e clicchiamo su ok, come indicato nella finestra qui di seguito.
Una volta creato il nostro progetto si aprirà in automatico tutto l’ambiente di sviluppo, dove dovremo inserire il nostro codice. Prima di iniziare a scrivere selvaggiamente, però, ci sono altre piccole operazioni da effettuare.
- Aggiunta Referenze:
Nel Solution Explorer dovremo cliccare con il pulsante destro del mouse su Riferimenti, dopodichè scegliere “Aggiungi Riferimento” (immagine poco più giù). Dalla lista che ci comparirà selezionare “SdlDotNet” e cliccare su Ok.

- Cancellare il Form1:
Il file Form1.cs viene creato automaticamente, alla creazione del progetto. A noi non serve, per cui provvediamo immediatamente a cancellarlo selezionando il file con il pulsante destro del mouse e cliccando su Elimina.
- Cancellare il codice dal file Program.cs
Niente di più semplice, dovete cancellare il codice del file in questione e sostituirlo con il codice riportato qui di seguito.
– Inizio Codice –
[code]]czo3Mjk6XCINCnVzaW5nIFN5c3RlbTsNCg0KdXNpbmcgU2RsRG90TmV0LkNvcmU7DQp1c2luZyBTZGxEb3ROZXQuR3JhcGhpY3M7DQp7WyYqJl19DQpuYW1lc3BhY2UgU2RsRG90TmV0RXhhbXBsZXMuU21hbGxEZW1vcw0Kew0KDQogICAgcHVibGljIGNsYXNzIEhlbGxvV29ybGQNCntbJiomXX0gICAgew0KICAgICAgICBbU1RBVGhyZWFkXQ0KICAgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpDQogICAgICAgIHsNCiAge1smKiZdfSAgICAgICAgICBIZWxsb1dvcmxkIGFwcCA9IG5ldyBIZWxsb1dvcmxkKCk7DQogICAgICAgICAgICBhcHAuR28oKTsNCiAgICAgICB7WyYqJl19IH0NCg0KICAgICAgICBwdWJsaWMgSGVsbG9Xb3JsZCgpDQogICAgICAgIHsNCiAgICAgICAgICAgIFZpZGVvLlNldFZpZGVvTW9kZXtbJiomXX0oNDAwLCAzMDApOw0KICAgICAgICAgICAgVmlkZW8uV2luZG93Q2FwdGlvbiA9IFwiSGVsbG8gV29ybGQhXCI7DQogICAgICAgIH0NCg17WyYqJl19CiAgICAgICAgcHVibGljIHZvaWQgR28oKQ0KICAgICAgICB7DQogICAgICAgICAgICBFdmVudHMuUXVpdCArPSBuZXcgRXZlbnRIYXtbJiomXX1uZGxlcjxRdWl0RXZlbnRBcmdzPih0aGlzLlF1aXQpOw0KICAgICAgICAgICAgRXZlbnRzLlJ1bigpOw0KICAgICAgICB9DQoNCiAge1smKiZdfSAgICAgIHByaXZhdGUgdm9pZCBRdWl0KG9iamVjdCBzZW5kZXIsIFF1aXRFdmVudEFyZ3MgZSkNCiAgICAgICAgew0KICAgICAgICB7WyYqJl19ICAgIEV2ZW50cy5RdWl0QXBwbGljYXRpb24oKTsNCiAgICAgICAgfQ0KICAgIH0NCn0NClwiO3tbJiomXX0=[[/code]
Fatto questo, non vi rimane che salvare il progetto e premere F5 per avviare la nostra prima applicazione con SDL.NET! Lo so, non è niente di eccitante.
Se invece il programma vi da degli errori, beh... vi ricordate cosa ho detto nell'articolo precedente, riguardo le dipendenze? Dovete avere il file SDL.dll nella stessa cartella del vostro file eseguibile, oltre alle librerie fornite con il package di installazione. Guardate l'immagine di seguito, in modo da capire quali sono i file da includere nella cartella:

Un consiglio: come potete vedere in questa cartella vi sono un infinità di files: se volete, provate a togliere quelli che secondo voi non servono e fate tanti test. In questo modo potrete capire quali sono le dipendenze necessarie per ogni caso. Se invece volete andare sul sicuro, lasciate tutti i files nella cartella e non vi preoccupate
Prima di proseguire, spieghiamo un po quello che abbiamo fatto:
Tramite le direttive using abbiamo incluso i namespace delle “sezioni” della libreria che ci servivano: nel nostro caso abbiamo incluso “Core”, ovvero la base essenziale, e “Graphics”, che come suggerisce il nome serve per la gestione degli aspetti grafici.
Abbiamo creato quindi una piccola classe HelloWorld con i metodi essenziali alla creazione della nostra base: il costruttore HelloWorld, che si occupa di inizializzare il video ad una risoluzione di 400 x 300 e cambiare il titolo della finestra (WindowCaption) il metodo Go(), che assegna i vari EventHandler agli eventi previsti dalla libreria ed infine il metodo Quit, che regola l'uscita dal programma.
Spero mi perdonerete per questa mia sintetica spiegazione del codice: per ora è tutto quello che dovete sapere per darvi un'idea di base. Nelle prossime lezioni, tuttavia, spiegherò come capire il sistema degli eventi e sarete quindi in grado di comprendere e spiegare riga per riga tutto il codice di questo file.
Per ora, invece, è tutto!
La Guida del Principiante ad SDL.NET – Guida SDL.NET
nov 14
titolo originale: “The Absolute Newbie Guide to SDL.NET”

Dunque, in questo primo articolo dedicato ad SDL.NET introdurremo qualche informazione relativa al suo funzionamento e qualche dato generico. SDL.NET offre l’accesso ad una libreria multimediale e multipiattaforma, che permette di gestire ad un livello abbastanza alto sia l’Audio, l’Input (mouse, tastiera, joystick), grafica 3D (tramite OpenGL) e grafica 2D.
Attualmente, l’home page del progetto è http://cs-sdl.sourceforge.net/, ed il maintainer al momento in cui scrivo è David “jendave” Hudson.
L’approccio delle API SDL.NET è molto simile al modello sul quale si basa un altro Wrapper, PyGame per il linguaggio di programmazione Python.
Dati Assembly:
- Nome: SdlDotNet.dll
- Namespace: SdlDotNet
Note Aggiuntive:
- Tao.Sdl contiene i binding di basso livello con le sei librerie C originarie (SDL, SDL_image, SDL_ttf, SDL_mixer, SDL_gfx, SMPEG)
Contenuti del file Zip:
- /bin – Assembly;
- /examples – Applicazioni demo basate su SDL.NET;
- /lib – Dipendenze e librerie originali, il cui uso verrà spiegato successivamente;
- /doc – files della documentazione in formato CHM e HTML;
- /source – files di informazioni, file delle soluzioni/build;
- /source/examples – codici sorgenti delle demo sopra trattate e fornite con il pacchetto;
- /source/lib – dipendenze della libreria;
- /source/src – codice sorgente di SDL.NET;
- /source/setup – script di compilazione;
- /soruce/tools – utility e loghi;
- /source/tests – unit tests;
Dipendenze:
Questi file sotto elencati devono essere necessariamente nella cartella dove si trova l’eseguibile (il file .exe) del vostro gioco. A volte non sono necessari tutti, ma solo quelli relativi alle funzioni da voi usate. Esempio pratico: nel vostro gioco non utilizzate filmati? Allora la libreria SMPEG non sarà un granchè utile nel pacchetto finale.
Comunque sia, ecco la lista dei files che dovrebbero essere inclusi nel percorso del vostro programma:
- SDL;
- SDL_image;
- SDL_mixer;
- SDL_ttf;
- SMPEG;
- SDL_gfx;
Inoltre saranno necessarie le librerie .NET “Tao.Sdl”.
Installazione del Pacchetto
Per quanto riguarda l’installazione di SDL.NET in questa guida tratterò solamente la parte relativa a Windows, in quanto attualmente uso solo questo sistema operativo ed ho modo di fare qui le prove. Per quanto riguarda Linux e Mac troverete le vostre risposte (in inglese) su: http://cs-sdl.sourceforge.net/index.php/The_absolute_newbies_guide_to_SDL.NET.
Sotto Windows potremo installare le nostre librerie tramite 3 soluzioni diverse:
- Runtime Installer, per gli utenti che non intendono modificare il codice sorgente;
- SDK Installer, per coloro che vogliono installare tutto il pacchetto completo di codice sorgente;
- Archivio Zip, un’ alternativa all’installer classico, utile per gestirsi i files come si vuole.
Con il Runtime Installer:
Dalla pagina di download del progetto, selezionare la voce SdlDotNet-x.x.x-runtime-setup.exe, dove x.x.x è l’ultima versione del progetto disponibile. Una volta scaricato il pacchetto, basterà eseguire il doppio click sul file e seguire le istruzioni a schermo.
Con l’ SDK Installer:
Dalla pagina di download del progetto, selezionare la voce SdlDotNet-x.x.x-sdk-setup.exe, dove x.x.x è l’ultima versione del progetto disponibile. Come per il caso precedente, cliccare due volte sul file appena scaricato e seguire le istruzioni. Per compilare i codici sorgenti basterà usare i files “build.bat”.
Con l’Archivio Zip:
Dalla pagina di download del progetto, scaricare il file SdlDotNet-x.x.x.zip. Copiare i file in /bin (SdlDotNet.dll e Tao.Sdl.dll) nella cartella della Global Assembly Cache (di solito è c:\winnt\assembly). Copiare i file in /bin/win32deps in una directory a tua scelta (di solito è consigliato C:\winnt\system32). Se si vuole compilare l’SDL.NET, eseguire il file build.bat.
Nei percorsi poco sopra, winnt potrebbe anche essere la cartella Windows per cui non fatevi disorientare dal nome.
Se non sono stati riscontrati problemi, è tutto regolare e il nostro SDK e bello ed installato! Ora dobbiamo solamente programmarci (solamente eh -.-”). Procediamo all’Hello World, forza e coraggio!
Introduzione – Guida SDL.NET
nov 14
Ciao a tutti! Se vi trovate qui è perchè, in un modo o nell’altro, siete interessati alla programmazione di videogiochi. Ciò che analizzeremo è una libreria usata proprio per questo scopo: creare videogiochi.
Una libreria, nella sua accezione informatica, è un insieme di funzioni di utilità più o meno comune che sono state appositamente create per l’utilizzo in un programma. L’obiettivo principale di una libreria è risparmiare tempo. Una volta un mio professore disse che l’informatica è l’arte del riciclaggio. Nulla di più vero.

Una libreria serve proprio a questo: evitare di reinventare ogni volta la ruota diminuendo il lavoro del programmatore.
Chiarito questo concetto è necessario che io spieghi quello che voglio fare attraverso questa serie di guide ed articoli: il mio principale obiettivo è capire al meglio il funzionamento di questa libreria, tradurre i vari articoli presenti sul wiki e, così facendo, fornire un valido aiuto a tutti i programmatori italiani interessati a questa nicchia che, per un motivo o per un altro, non masticano bene l’inglese o vogliono vedere comunque un po di materiale nella loro lingua.
Proverò passo passo tutti i passaggi, sintetizzando dove necessario ma anche spiegando linea per linea dove essenziale. Così facendo sarà facile creare un piccolo progetto ed iniziare a buttare giù qualche idea, creando qualcosa di proprio.
Con questo smetto di parlare a vanvera e inizio a fare qualcosa di utile
Spero possa esservi d’aiuto!




Ultimi Commenti