Introduzione
Molti sviluppatori, in particolare coloro per lo sviluppo windows, utilizzano la classe messagebox per visualizzare informazioni all’utente, a video, oppure per la gestione degli errori.
Anche in XNA, si ha la possibilità di utilizzare questo tipo di tecnica, anche se viene consigliata altra tecnica per visualizzare messaggi all’utente.
Vedremo, come utilizzare una MessageBox, in XNA 4, tramite il linguaggio di programmazione C#.
Il messaggio a video, sarà visualizzato come mostrato in figura 1.
Figura 1
Creazione del progetto
Si crea un nuovo progetto, di tipo windows, per XNA 4.
Dopo aver creato tale progetto, si crea un metodo, che permetta di intercettare il pulsante digitato ed eseguire determinate operazioni.
La messagebox, può contenere diversi pulsanti, uno, due o più.
Come parametro, ha un oggetto di tipo "Iasyncresult", il quale passato al metodo EndShowMessageBox della classe Guide, restituisce un valore (oppure nullo)
Una volta, rilevato il valore, possiamo decidere che azione intraprendere.
Qui di seguito, si riporta il frammento di codice di tale funzione.
private void risposta(IAsyncResult result)
{
//Rilevo la scelta
int? decisione = Guide.EndShowMessageBox(result);
switch (decisione)
{
case 0:
//codice pulsante 1
break;
case 1:
//codice pulsante 2
break;
case 2:
//codice pulsante 3
break;
default:
break;
}
}
Terminata la stesura della funzione riguardante la scelta del pulsante, si passa al codice, relativo al messaggio da visualizzare.
Nell’evento update della classe game, quella in cui viene aggiornato il nostro gioco, verifichiamo che l’utente ha digitato il tasto “F2” il tal caso, verifichiamo che la proprietà IsVisible sia impostata a false, in tal caso, tramite il metodo BeginShowMessageBox, dell’oggetto Guide, visualizziamo a video un messaggio.
Il metodo accetta diversi argomenti, il primo parametro, il titolo, poi il testo, il testo dei pulsanti, che possono variare in base al numero degli elementi del nostro array, in questo esempio di codice, sono tre, il pulsante di default (impostata a “0”) , il tipo di messaggio, se è di allarme, critico, nessuno o di avviso, il nome della funzione, che rileva il pulsante scelto e lo stato.
Qui di seguito si riporta l’esempio di codice da utilizzare nell’evento update
protected override void Update(GameTime gameTime)
{
if (Keyboard.GetState().IsKeyDown(Keys.F2))
{
//Verifico la proprietà IsVisible, per visualizzare il messaggio
if (!Guide.IsVisible)
{
Guide.BeginShowMessageBox("Titolo messaggio",
"Testo messaggio",
new string[] { "Pulsante 1", "Pulsante 2", "Pulsante 3" },
(0), MessageBoxIcon.Alert, risposta , null);
}
}
// TODO: Add your update logic here
if (Keyboard.GetState().IsKeyDown(Keys.Escape))
this.Exit();
base.Update(gameTime);
}
Conclusioni
L'articolo, ha fornito al lettore l’utilizzo dei messaggi a video, più comunemente denominato “MessageBox”, tecnica utilizzata molto spesso dai programmatori per applicazioni in ambiente windows.
Naturalmente si invita il programmatore di video giochi, a non usare questa tecnica, ma apposite classi e controlli, per segnalare al “giocatore” informazioni.