martedì 29 novembre 2011
Migliori posti di lavoro in Italia e nel mondo
Il sito http://www.greatplacetowork.it/index.php riporta la classifica dei migliori luoghi di lavoro in Italia e nel mondo.
La classifica, viene aggiornato di volta in volta e fornisce il vincitore annuale dei migliori ambienti di lavoro in Italia e nel mondo.
E la vostra azienda offre gli stessi standard?
giovedì 24 novembre 2011
Evento gratuito NIDays 2012
Il 29 febbraio 2012 a Roma, si svolgerà l'evento grautito NiDay 2012 http://italy.ni.com/nidays, una giornata formativa sul prodotto Labview della società National Struments.
Interessanti l'iniziative di questa giornata formativa, come la possibilità di proporre il proprio progetto.
Attualmente l'agenda è in fase di preparazione, ma il tema di questa edizione riguarderà la robotica.
Al momento è possibile registrarsi all'evento tramite il pulsante posto sulla destra oppure tramite il seguente link http://sine.ni.com/nievents/app/offering/p/offeringId/556191/site/nie/country/it/lang/it
Vi terrò informati sulle novità.
Per maggiori informazioni visitate il seguente sito http://italy.ni.com/nidays
Visto l'argomento e visto che saranno a Roma, parteciperò a questa ottima iniziativa, vi consiglio di partecipare.
mercoledì 23 novembre 2011
segnalazione sito: blog di gestione documentale
Il blog è in lingua inglese.
martedì 22 novembre 2011
Servizio on line per il fotoritocco
Il sito è anche in lingua italiana.
lunedì 21 novembre 2011
QT day evento gratuito sulla programmazione QT
domenica 20 novembre 2011
download Sql Server 2012 RC
Per il download e maggiori informazioni, visitate il sito appena indicato.
sabato 19 novembre 2011
silverlight ChildWindow in VB.Net e C#
Riporto l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_silverlight-finestra-popup-childwindow-v_1108.aspx
Introduzione
In questo articolo, vedremo come creare le famose popup di Asp.net anche per la tecnologia Silverlight.
Tramite la classe ChildWindow, possiamo creare delle finestre modali, che permettono di dotare le nostre applicazioni in Silverlight, di un interfaccia che possa obbligare l’utente a compilare i campi di una determinata finestra, senza che possa digitare altre parti del nostro applicativo.
Una finestra, che resta in primo piano, il tutto come riportato in figura 1
Figura 1
Dopo aver creato un nuovo progetto in Silverlight, aggiungete al progetto un pulsante, il quale avrà il compito di eseguire la nostra finestra modale.
Terminata tale operazione, nella finestra “esplora soluzioni” fate click sul progetto con il tasto destro, e selezionare dal menu di scelta rapida, “aggiungi nuovo elemento”, nella finestra che viene aperta, selezionate il modello quello relativo alla voce “finestra secondaria di Silverlight”, il tutto come mostrato in figura 2.
Figura 2
Lasciamo il nome che ci viene assegnato (ma volendo il lettore può cambiarlo senza problemi), verrà inserito nel progetto un nuovo controllo, che assomiglia in molti aspetti ad una finestra di progetti stile “windows Application”, con un titolo e due pulsanti (ok ed annulla).
Cambiamo la proprietà “title” dalla finestra delle proprietà, con il valore “Finestra di dialogo”.
Nella finestra, aggiungiamo due controlli label e due controlli textbox, il tutto come mostrato in figura 1.
I controlli label riporteranno il valore della proprietà text “Nome” e l’altro “cognome” mentre le proprietà name sarà “lblNome” e “lblCognome”, mentre le caselle di testo, avranno la proprietà “Name” un controllo impostato con il valore “txtNome” e l’altro con il valore “txtCognome”.
Ora passiamo alla pagina, quella relativa di partenza, ossia dove si trova il pulsante.
Facciamo doppio click sul pulsante, e nella visualizzazione codice, nell’evento click, scriviamo il codice che ci permette di aprire la finestra child e di gestire l’evento closed, tramite un gestore di evento.
Qui di seguito si riporta il codice delle suddette operazioni.
VB.Net
Private Sub Btnapri_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Btnapri.Click
Dim finestra As New ChildWindow1()
AddHandler finestra.Closed, AddressOf Me.finestra_closed
finestra.Show()
End Sub
C#
private void Btnapri_Click(object sender, RoutedEventArgs e)
{
ChildWindow1 finestra = new ChildWindow1();
finestra.Closed += new EventHandler(finestra_Closed);
finestra.Show();
}
Qui di seguito si riporta la funzione relativo al gestore di evento per rilevare i valori.
VB.Net
Private Sub finestra_closed(ByVal sender As Object, ByVal e As EventArgs)
Dim finestra As ChildWindow1 = CType(sender, ChildWindow1)
If finestra.DialogResult = True Then
MessageBox.Show("Testo Nome: " & finestra.txtNome.Text & " Cognome: " + finestra.txtCognome.Text)
End If
End Sub
C#
void finestra_Closed(object sender, EventArgs e)
{
ChildWindow1 finestra = (ChildWindow1)sender;
if (finestra.DialogResult == true)
{
MessageBox.Show("Nome: " + finestra.txtNome.Text + " Cognome: " + finestra.txtCognome.Text);
}
}
Conclusioni
L’articolo ha voluto fornire le basi per la creazione di finestre modali, ossia quelle finestre che bloccano la pagina chiamante, per visualizzare a video una semplice finestra, con due pulsanti per confermare e annullare.
La flessibilità di Silverlight lascia molto spazio ed autonomia al programmatore permettendo di personalizzare ed ampliare le finestre modali.
venerdì 18 novembre 2011
FT: Salviamo l'istituto Majorana di Gela
giovedì 17 novembre 2011
ebook gratuito sulla prevenzione tumore della prostata
Il libro è scritto in lingua italiana ed è ben fatto.
mercoledì 16 novembre 2011
Silverlight utilizzo dei file xml tramite VB.Net e C#
Riporto l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_silverlight-utilizzare-i-file-xml-in-vbn_1106.aspx
Introduzione
Vedremo in questo nuovo articolo su Silverlight, come utilizzare i file xml, per leggere e scrivere i dati.
I file XML, da alcuni anni, si usano per la gestione dei dati, molto importante infatti è questo protocollo, perché permette di far comunicare, sistemi ed applicazioni diversi fra loro.
L’articolo fornisce le basi per utilizzare i file xml.
Creazione del progetto
Si crea un nuovo progetto di tipo Silverlight 4, in base al linguaggio di proprio gradimento.
Aggiungete nel progetto un nuovo file XML, (dalla finestra esplora soluzione, tasto destro sul nome del progetto->aggiungi
<?xml version="1.0" encoding="utf-8" ?>
<!-- nodi-->
<Items>
<Nome attributo='testo'>
Emanuele</Nome>
<Cognome>Mattei</Cognome>
</Items>
Terminata questa operazione, passiamo in visualizzazione codice XAML, della nostra classe page, ossia la pagina dove andremo a leggere e scrivere i dati XML.
Aggiungente due pulsanti, i quali avranno il ruolo di leggere i dati e scrivere i dati.
In un controllo pulsante, impostate la proprietà “Text” con Leggi e la proprietà “Name” in btnCarica, mentre per l’altro pulsante, impostate la proprietà “Text” in Scrivi e la proprietà “Name in “BtnScrivi”.
Terminato ciò, passiamo in visualizzazione codice ed inseriamo gli spazio dei nomi per la gestione dei file XML.
Qui di seguito si riportano i frammenti di codice delle suddette operazioni
VB.Net
Imports System.Xml
Imports System.IO
Imports System.Text
Imports System.IO.IsolatedStorage
C#
using System.Xml;
using System.IO;
using System.Text;
using System.IO.IsolatedStorage;
Lo spazio dei nomi, forniscono le classi per la gestione dei file XML, file fisici, per la gestione del testo e per il salvataggio isolato.
Passiamo in visualizzazione disegno e facciamo doppio click sul pulsante di lettura, quello relativo alla lettura dei dati.
Nell’evento click, che viene generato nel codice, scriviamo il codice per la lettura dei file.
In particolare faremo uso della classe xmlreader per leggere i vari valori.
Qui di seguito, si riporta un frammento di codice per il linguaggio VB.Net e C#
VB.Net
Private Sub BtnCarica_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles BtnCarica.Click
' Leggo il file
Using lettura As XmlReader = XmlReader.Create("XMLdati.xml")
Dim testo As String = ""
While lettura.Read()
'Ciclo per tutti i nodi
Select Case lettura.NodeType
Case XmlNodeType.Element
testo += vbCrLf & " Nome Elemento:" & lettura.Name & " Attributo:" & lettura.GetAttribute("attributo")
Case XmlNodeType.Text
testo += vbCrLf & " Testo Elemento:" & lettura.Value
Case XmlNodeType.XmlDeclaration Or XmlNodeType.ProcessingInstruction
testo += vbCrLf & " Dichirazione:" & lettura.Name & " " & lettura.Value
Case XmlNodeType.Comment
testo += vbCrLf & " Commento:" & lettura.Value
End Select
End While
textBlock1.Text = testo
End Using
End Sub
C#
private void BtnCarica_Click(object sender, RoutedEventArgs e)
{
// Leggo il file
using (XmlReader Lettura = XmlReader.Create("XMLdati.xml"))
{
string Testo = "";
//Ciclo per tutti i nodi
while (Lettura.Read())
{
switch (Lettura.NodeType)
{
case XmlNodeType.Element:
Testo += "\n Nome Elemento:" + Lettura.Name + " Attributo:" + Lettura.GetAttribute("attributo");
break;
case XmlNodeType.Text:
Testo += "\n Testo Elemento:" + Lettura.Value;
break;
case XmlNodeType.XmlDeclaration:
case XmlNodeType.ProcessingInstruction:
Testo += "\n Dichirazione:" + Lettura.Name + " " + Lettura.Value;
break;
case XmlNodeType.Comment:
Testo += "\n Commento:" + Lettura.Value;
break;
}
}
textBlock1.Text = Testo;
}
}
A questo punto, non ci resta che scrivere il codice per il salvataggio dei dati.
In visualizzazione grafica, facciamo doppio click sul pulsante destinato al salvataggio dei dati, in questo modo viene generato in automatico il codice per il gestore dell’evento click del pulsante.
In visualizzazione codice, scriviamo il codice che ci permette di salvare i dati, il tutto tramite l’utilizzo delle classi classi IsolatedStorageFile, per la gestione di archiviazione isolata, xmlwriteSettings e XmlWrite, per gestione i dati nel file xml ed infine la classe StreamReader per la lettura del file. Nei commenti trovate le indicazioni delle varie righe di codice.
VB.Net
Private Sub BtnScrivi_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles BtnScrivi.Click
'Gestione archiviazione isolata
Using isoStore As IsolatedStorageFile = IsolatedStorageFile.GetUserStoreForApplication
' Creo un file
Using isoStream As IsolatedStorageFileStream = New IsolatedStorageFileStream("NomeFile.xml", FileMode.Create, isoStore)
' imposta l'intestazione del file
Dim settings As New XmlWriterSettings
settings.Indent = True
'Eseguo la generazione e la compilazione dei vari campi
Using writer As XmlWriter = XmlWriter.Create(isoStream, settings)
'commento
writer.WriteComment("Commento in XML")
'Creo un elemento, ossia item, che contiene elementi con valore
writer.WriteStartElement("NodoPrincipale")
'Creo per il nodo peredecente degli attributi, di tipo namespace
writer.WriteAttributeString("xmlns", "Attributo", Nothing, "urn:valore attributo")
'Creo un attributo semplice
writer.WriteAttributeString("Attributo", "Vaolore attributo")
'SCrivo un elemento, con il valore
writer.WriteElementString("Nodo", "Valore nodo")
'Chiudo i tag aperti
writer.WriteEndElement()
'Genero il file
writer.Flush()
End Using
End Using
'Leggo il file per le modifiche
Using reader As New StreamReader(isoStore.OpenFile("NomeFile.xml", FileMode.Open))
textBlock1.Text = reader.ReadToEnd()
End Using
End Using
End Sub
C#
private void BtnScrivi_Click(object sender, RoutedEventArgs e)
{
//gestione archiviazione isolata
using (IsolatedStorageFile isoStore =
IsolatedStorageFile.GetUserStoreForApplication())
{
// Creo un file
using (IsolatedStorageFileStream isoStream =
new IsolatedStorageFileStream("NomeFile.xml",
FileMode.Create, isoStore))
{
//imposta l'intenzione del file
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
//eseguo la generazione e la compilazione dei vari campi
using (XmlWriter writer = XmlWriter.Create(isoStream, settings))
{
//commento
writer.WriteComment("Commento in XML");
//Creo un elemento, ossia item, che contiene elementi con valore
writer.WriteStartElement("NodoPrincipale");
//Creo per il nodo peredecente degli attributi, di tipo namespace
writer.WriteAttributeString("xmlns", "Attributo", null, "urn:valore attributo");
//Creo un attributo semplice
writer.WriteAttributeString("Attributo", "Vaolore attributo");
//SCrivo un elemento, con il valore
writer.WriteElementString("Nodo", "Valore nodo");
//Chiudo i tag aperti
writer.WriteEndElement();
//Genero il file
writer.Flush();
}
}
//Leggo il file per le modifiche
using (StreamReader reader = new StreamReader(isoStore.OpenFile("NomeFile.xml", FileMode.Open)))
{
textBlock1.Text = reader.ReadToEnd();
}
}
}
Conclusioni
Abbiamo visto come utilizzare il protocollo per lo scambio e gestione dei dati, XML, molto usato in vari linguaggi e tecnologie.
Silverlight, giunto alla versione 5, offre notevoli classi, da considerarlo uno strumento efficiente e con ottima flessibilità.
martedì 15 novembre 2011
Download Mega Player Portable 1.1 Free in Italiano
Antonio, mi informa della nuova versione del suo programma per viedere i filmati.
Dal seguente sito http://www.istitutomajorana.it/index.php?option=com_content&task=view&id=1581&Itemid=33 potete scaricare il programma gratuito Mega Player 1.1. in italiano, che permette di vedere file video, il software ricordiamo è portatile, ossia che non richiede nessuna installazione.
lunedì 14 novembre 2011
Recensione MiniMouse ottico P009-TM032-R
Riporto l'articolo scritto per il sito http://www.shoppalo.it/guide-shopping/minimouse-ottico-p009-tm032-r_c-220.aspx
In questa recensione, conosceremo un prodotto della società Atlantis http://www.atlantisland.it, ed in particolare il MiniMouse ottico P009-TM032-R con sensore ottico a 800 dpi http://www.atlantisland.it/pub/prodotti.php?famiglia=2&l1=11&l2=72&articolo=UDAwOS1UTTAzMi1S.
Il mouse, è divenuto uno strumento indispensabile per chi utilizza il pc, infatti, permette con precisione di compiere determinate azioni sul computer. Al tempo stesso è divenuto anche un gadget tecnologico di moda, con strane forme, colori e stili sempre più accattivanti.
Il MiniMouse Atlantis offre un design accattivante, ideale per coloro che vogliono fare un regalo oppure visto il periodo, valutarlo come pensierino di Natale.
Il mini mouse ha tre pulsante, posizionati uno a sinistra, l’altro a destro, e la rotella, oltre alla funzione di scroll, premendo verso il basso effettua il terzo pulsante.
Questo dispositivo, ha un’ottima precisione, offre prestazioni elevate, permettendo all’utilizzatore altissima precisione, lavorando in maniera ottimale all’uso del pc.
La confezione (figura 1) , fornisce all’acquirente le informazioni tecniche del dispositivo, inoltre si può ammirare nell’involucro il design accattivante.
Figura 1 – il mouse nella sua confezione
Dopo averlo estratto dalla scatola, si può ammirare la brillantezza ed il design di questo dispositivo, nel nostro caso, abbiamo scelto il colore rosso, con bande di color argento, queste rifiniture risaltano il design. I colori disponibili di questo dispositivo sono nero e bianco.
Figura 2 – il mouse senza scatola
Nel momento in cui inseriamo il mouse al pc o accendiamo il pc con il mouse collegato, la rotella del mouse, viene illuminata (figura 3) di colore rosso, in abbinamento al colore rosso del mouse.
Figura 3 – il mouse con la rotella illuminata di rossa, nel momento in cui si collega al pc.
Se colleghiamo il mouse per la prima volta, il sistema operativo Windows, installerà il dispositivo, visualizzando a video le varie fasi d’installazione (figura 4). Questo avviene solo la prima volta, in seguito non verrà visualizzata tale messaggio, visto che questo avviene solo la prima volta che il mouse viene collegato al pc, per il relativo riconoscimento del sistema operativo Windows.
Figura 4 – La fase d’installazione
Al termine dell’installazione (figura 5) possiamo utilizzare tranquillamente il mouse.
Figura 5 – termine d’utilizzo
Conclusioni
Ottimo dispositivo hardware da regalare oppure da regalarsi, e visto l’avvicinarsi delle festività natalizie, può essere una buona occasione per far un simpatico pensiero agli amici, soprattutto per quelli appassionati di oggetti tecnologici o utilizzatori passionali di pc.
domenica 13 novembre 2011
XNA gestione suoni ed effetti
Riporto l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_tutorial-xna-utilizzo-del-suono_1104.aspx
Introduzione
In questo articolo, vediamo come gestire i file audio ed i suoni nei nostri giochi creati con la tecnologia XNA, il tutto tramite il linguaggio di programmazione C#. Inoltre vedremo l’utilizzo del programma “Microsoft Cross-Platform Audio Creation Tool” per la realizzazione di effetti sonori ed aggiungere al codice la manipolazione dell’audio.
Creazione del gioco
Dopo aver creato un nuovo progetto in XNA, aggiungete al content un nuovo file audio, per esempio un file di tipo “wave” , si ricorda che sono validi altri formati audio, come per esempio wma, mp3, xap.
Fatto ciò, vediamo come eseguire questo file nelle nostre applicazioni.
Si creano a livello di classe, due oggetti, uno di tipo “SoundEffect” che ha il compito di gestire l’audio ed un oggetto di tipo SpriteFont, per visualizzare le informazioni a video
Qui di seguito si riporta la dichiarazione di oggetti delle suddette classi.
//oggetto per il suono
SoundEffect suono;
SpriteFont fontTesto;
Con l’oggetto di tipo SoundEffect, andremo a gestire il file audio, mentre con l’oggetto di tipo SpriteFont, il testo, si ricrdao di aver aggiunto nel content, un oggetto sprintfont ed un file audio nel nostro caso chiamato "gameOver.wav”.
Nell’evento LoadContent, inizialiamo gli oggetti creati in precedenza, ed in particolare, caricando il file audio e font, inseriti precedentemente.
Il tutto come riportato nell’esempio qui di seguito.
protected override void LoadContent()
{
// Create a new SpriteBatch, which can be used to draw textures.
spriteBatch = new SpriteBatch(GraphicsDevice);
//carico il suono che fa parte del progretto
suono = Content.Load<SoundEffect>("gameOver"); //nome file audio
fontTesto = Content.Load<SpriteFont>("SpriteFont1"); //nome file
A questo punto, nell’evento update, andremo ad utilizzare il nostro oggetto per il suono, ed in particolare il metodo “Play” che permette di eseguire l’audio.
Qui di seguito si riporta il frammento di codice, dove se viene digitato da tastiera il tasto S, viene emesso un suono.
protected override void Update(GameTime gameTime)
{
// Allows the game to exit
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
this.Exit();
// TODO: Add your update logic here
//eseguo il suono
if(Keyboard.GetState().IsKeyDown(Keys.S))
{
suono.Play();
}
La classe “SoundEffect” contiene diverse proprietà e metodi, che permettono di rilevare informazioni, come la durata oppure eseguire il suono.
Vedremo come rilevare la durata del nostro file.
Nell’evento “Draw”, visualizziamo a video, il tempo di questo nostro file audio, tramite l’utilizzo della proprietà Duration.
Qui di seguito si riporta un esempio di codice.
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
// TODO: Add your drawing code here
spriteBatch.Begin();
string testoDurata = "Durata: " + suono.Duration.ToString();
spriteBatch.DrawString(fontTesto, testoDurata, new Vector2(10, 10), Color.White);
spriteBatch.End();
base.Draw(gameTime);
}
Utilizzo di Microsoft Cross-Platform Audio Creation Tool (XACT) v3.0
Quando si installa XNA, vengono installati diversi strumenti, essi si trovano nel menu programmi e precisamente nel menu “Tools” del nostro menu di XNA.
Lo strumento Microsoft Cross-Platform Audio Creation Tool, permette di manipolare i file audio, gestire effetti particolari e tanto altro.
Apriamo tale strumento, ci verrà visualizzata la finestra vuota, il tutto come mostrato in figura 1.
Figura 1
Facciamo click sulla voce di menu, file, e successivamente “New Project”, ci verrà chiesto dove salvare il file “XAP”, si consiglia di metterla nella cartella content del nostro progetto XNA, anzi, prima di procedere a tale operazioni, consigliamo vivamente la creazione di una cartella (Es. suoni) in cui andremo a salvare il nostro file XAP (generato dal tools) ed il file audio.
Ora in questa cartella, inserite un file audio, che volete gestire con effetti particolare, nel nostro caso, è stato inserito un file di tipo wav “end.wav”.
Terminata tale operazione, facciamo click sul pulsante File, e poi salva, e nella finestra di dialogo che ci viene aperta, andiamo a ricercare la cartella “Suoni” creata nel nostro progetto, precedentemente.
A questo punto, salviamo il nostro progetto (per esempio con il nome “suoni”) in questo modo verrà generato un file di tipo XAP.
Facciamo click sulla voce “Wave Banks” con il tasto destro, e nel menu di scelta rapida, selezioniamo la voce “New Wave Bank”, in questo modo verrà genato un oggetto di tipo “Wave Bank” nel quale andrà inserito il nostro file audio.
Possiamo lasciare anche il nome che viene assegnato automaticamente, ossia “Wave Bank”, il tutto come mostrato in figura 2.
Figura 2
Nella finestra di destra, quella relativa al dettaglio di “Wave Bank” facciamo click con il tasto destro, e nel menu di scelta rapida, selezioniamo la voce “insert wave File…” e andremo a ricercare il file end, che abbiamo copiato nella cartella Suoni, del nostro progetto.
Verranno visualizzati le informazioni di questo file, come nome, dimensione, ed altro ancora, il tutto come mostrato in figura 3
Figura 3
Terminato di impostare le informazioni di questo, facciamo click con il tasto destro del mouse sulla voce “Sound Banks” e dal menu di scelta rapida, selezioniamo la voce “New Sound Bank”.
Verrà visualizzata una finestra tutta bianca (figura 4).
Figura 4
Anche in questo caso, troviamo nella parte sinistra, una finestra delle proprietà. Questa finestra, ci fornisce alcune informazioni di dettaglio degli elementi che abbiamo selezionato, sia per quanto concerne la finestra del “Wave Bank” che per quanto concerne questa finestra.
Sono finestre, che permettono di gestire gli effetti al nostro file audio.
Ricordiamo che non è compito di questo articolo, approfondire lo strumento messo a disposizione di XNA, anche perché la gestione dei suoni, di norma, nella creazione di progetti, viene fatta da figure preposte a questo tipo di attività e quindi con una buona preparazione in ambito musicale, la nostra guida, a solo lo scopo illustrativo.
Dalla finestra “Wave Bank” trasciniamo (Drag & Drop) il file nell’elenco, nella lista “Cue Name” della finestra “Sound Bank” in questo viene generato il riferimento al file, il tutto come mostrato in figura 5
Figura 5
Assicurarsi dopo aver selezionato il nome della lista “Sound Name” della finestra “Sound Bank”, che nella finestra delle proprietà, la lista “Attached to Cues” ha la voce del cue, ossia “end” nel nostro caso, il tutto come mostrato in figura 5.
A questo punto, salviamo il nostro progetto, tramite la voce di menu “Salva”, situata nel menu File e successivamente compiliamo tramite la voce “Build” sempre del menu “File”.
Quando si fa click sulla voce “Build”, verrà visualizzata una finestra, lasciate l’opzione su “none” e fate click sul pulsante “Finish” a questo punto verrà generato un file xap, di nome suoni.xap.
Non solo, anche due cartelle, nominate Win e Xbox, nella cartella Win, troviamo alcuni file, che utilizzeremo nel nostro progetto.
Copiamo questi tre file (suoni.xgs, Sound Bank.xsb, e Wave Bank.xwb) nella cartella superiore, dove si trova il file “suoni.xap”.
Aggiungiamo al nostro progetto e precisamente nella cartella “Suoni”, il nostro file di tipo XAP, ossia suoni.xap, generato dalla compilazione del tools di XNA.
Il tutto come mostrato in figura 6.
Figura 6
Ora non ci resta che compilare il nostro progetto, di visual studio. Facciamo click nella finestra esplora soluzione, sul nome della soluzione e facciamo build e rebuild della nostra soluzione.
Nella finestra di output, verranno visualizzati i files che sono stati generati precedentemente dal tools “Microsoft Cross-Platform Audio Creation Tool”, nella figura 7 viene mostrato l’output della ricompilazione della nostra soluzione.
Figura 7.
Ora non ci resta che scrivere il codice, per utilizzare i file creati e manipolati.
Nel nostro progetto XNA, si creano a livello di classe, tre oggetti di tipo AudioEngine, SoundBank, e WaveBank, i quali hanno il compito di gestire i file creati.
Qui di seguito si riporta un frammento di codice d’esempio.
//per la gestione effetto suono
AudioEngine audioEngine;
SoundBank soundBank;
WaveBank waveBank;
Nell’evento loadContent, si inizializzano tali oggetti, con i relativi file.
protected override void LoadContent()
{
// Create a new SpriteBatch, which can be used to draw textures.
spriteBatch = new SpriteBatch(GraphicsDevice);
//carico il suono che fa parte del progretto
suono = Content.Load<SoundEffect>("gameOver"); //nome file audio
fontTesto = Content.Load<SpriteFont>("SpriteFont1"); //nome file
//imposto il suono
audioEngine = new AudioEngine("Content\\Suoni\\suoni.xgs");
soundBank = new SoundBank(audioEngine, "Content\\Suoni\\Sound Bank.xsb");
waveBank = new WaveBank(audioEngine, "Content\\Suoni\\Wave Bank.xwb");
// TODO: use this.Content to load your game content here
}
Come si vede dal codice d’esempio, l’oggetto di tipo AudioEngine, viene associato il file suoni.xgs, mentre soundBank la classe soundbank, che accetta due parametri, un oggetto di tipo “AudioEngine” ed il percorso del file “.xsb”. Infine per l’oggetto di tipo “WaveBank”, viene impostato oltre all’oggetto di tipo AudioEngine, il file di tipo “.xwb”, il tutto nell’evento Loadcontent.
Nell’evento Update, verifichiamo che l’utente ha digitato il tasto “A” in tal caso, tramite il metodo PlayCue, che accetta come parametro, il valore relativo al campo “Cue Name” visto nel tools “Microsoft Cross-Platform Audio Creation Tool” viene eseguto l’effetto sonoro.
Qui di seguito si riporta l’esempio di codice delle sudette operazioni.
protected override void Update(GameTime gameTime)
{
//Eseguo gli effetti suono
if (Keyboard.GetState().IsKeyDown(Keys.A))
{
soundBank.PlayCue("end");
}
base.Update(gameTime);
}
Conclusioni
L'articolo è giunto al termine, non ci resta che testare il nostro programma e digiare il tasto “A” per verificare gli effett sonori. Come si è visto in questo articolo, le potenzialità offerte dagli strumenti messia a disposizioni da XNA, permettono la gestione degli effetti audio, permettono di creare giochi con della musica, molto ma molta complessa.
Per approfondire l’utilizzo dello strumento “Microsoft Cross-Platform Audio Creation Tool” , il lettore potrà consultare dal seguente sito http://msdn.microsoft.com/it-it/library/ff827590.aspx un tutorial, che illustra l’utilizzo di questo strumento.