2.3 Operazioni di base

4.666665
Il tuo voto: Nessuno Media: 4.7 (3 voti)

 

Vediamo innanzi tutto da un punto di vista operativo quali logiche di gioco e di disegno sono state create per noi nel progetto di base. Seguendo lo stesso schema di pensiero di XNA cominciamo dal metodo Update.
 
        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
           
            base.Update(gameTime);
        }
 
Come si nota esiste già un’istruzione che serve a permettere al gioco di terminare. L’istruzione è abbastanza chiara di per sé: se il tasto Back del Gamepad collegato sulla Porta Uno è premuto allora esci dal gioco. Qui chiaramente si assume che chi usa il gioco abbia collegato un GamePad Xbox 360  sulla porta 1... In futuro elimineremo del tutto questa pare di codice per scriverne una migliore e più efficiente, ma per il momento ci va bene così, ma magari ci conviene fare una piccola aggiunta tanto per essere un po’ più amichevoli con chi sul PC ha la tastiera ma non un GamePad Xbox 360 per PC! Penso che sia una buona idea (per adesso) definire che premendo il tasto Escape si ottenga lo stesso risultato, quindi modifichiamo il test come di seguito:
 
            if ((GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) ||
                Keyboard.GetState().IsKeyDown(Keys.Escape))
                this.Exit();
 
 
Ora che abbiamo modo di uscire anche con la tastiera passiamo oltre. Che abbiamo nel Draw?
 
        protected override void Draw(GameTime gameTime)
        {
            GraphicsDevice.Clear(Color.CornflowerBlue);
 
            // TODO: Add your drawing code here
 
            base.Draw(gameTime);
        }
 
Nulla di speciale davvero! Semplicemente un’istruzione che dice al gestore della grafiica di cancellare l’area di lavoro a video e renderla uniformemente di un colore azzurrino. Avrete notato che sia Update che Draw terminano richiamando il proprio metodo omologo nella classe di base, cosa fondamentale per la corretta esecuzione del gioco.
 
Se ora eseguissimo il gioco cosa accadrebbe? Beh... come abbiam visto ogni sessantesimo di secondo il nostro gioco controlla se abbiamo premuto un tasto (Back sul Gamepad o Escape sulla tastiera) per uscire dal gioco, dopo di che si limita a disegnare uno sfondo azzurrino.
 
Se premete il tasto F5 (esecuzione del gioco in modalità di Debug) ecco cosa vedrete:

Ovviamente premendo Escape sulla tastiera il gioco si chiude. Direi che il tutto è chiaro e semplice fin qui. Notate che indipendentemente dalla risoluzione del vostro schermo avete ottenuto una finestra di gioco 800 per 600 (quindi un rapporto televisivo 4:3).