Creare un prototipo parte 2

Come prima cosa salva il file aumentandolo di numero, io avevo chiamato il mio file prototipo01 quindi viene facile cambiare solo un numero, se premi CTRL+Shit+S si apre la finestra di salvataggio (SaveAs), come noti la barra del nome è rossa, in questo modo Blender ti avvisa che il nome del file esiste già e che quindi salvando sovrascrivi il file già esistente, ma noi non vogliamo questo, quindi cambio il numero, oppure clicco sul + nella parte in alto a destra della finestra e poi salvo.

E’ una buona abitudine salvare diversi file a ogni passaggio importante, il file 01 riguarda la meccanica di movimento del player, in questo modo si può tornare indietro e cambiare qualcosa o rifare da capo una meccanica. A questo punto devo decidere come proseguire nella creazione del prototipo, posso iniziare ad implementare qualche meccanica oppure iniziare a creare il livello per poi implementare le meccaniche che mi servono. Di solito faccio una lista delle meccaniche che servono nel gioco, da tali implementazioni sviluppo il livello; spesso le due cose sono legate, ma non sempre, infatti se si vuole inserire una porta che fa passare il giocatore ad una nuova fase dello stesso livello dopo che ha preso un tot di oggetti, bisogna seguire una certa logica e si deve creare il livello diviso in due parti senza che il giocatore possa passare liberamente da una parte all’altra. Questo esempio come idea non è male e fa capire che solo pensando ad un’esempio si possa arrivare a realizzare un livello o una meccanica. Iniziamo.

Ho bisogno di due cose principalmente un oggetto da ‘prendere’, non lo si prende come si potrebbe fare nella vita reale, o forse è meglio usare il termine ‘collezionare’; e la porta o portone o quello che ci impedisce di passare (gli oggetti dipendono molto dal tipo di gioco e dalla grafica che si vuole usare). Detto questo modello una semplice moneta, è il primo oggetto che mi è venuto in mente. Inserisci un cilindro, premi T e sulla Tool Shelf dai i valori come nell’immagine seguente

Ora ruota la moneta di 90° sull’asse X oppure su quella Y (è irrilevante), rinominalo in moneta (o in uno a tuo piacimento); l’oggetto appena creato sarà come nella figura sotto.

In questa fase di creazione non importa realizzare modelli perfetti. Adesso dagli il materiale che vuoi accoppiando il nome, io ho messo un giallo. Ora dobbiamo fare in modo che quando il player collide (tocca) la moneta essa sparisca. Per farlo devi prima creare una Property sul player e chiamarla player, in questo modo identifichiamo il player nella logica e non soltanto come un oggetto. In seconda battuta aggiungiamo la logica alla moneta, in questo modo dividiamo la logica nei vari oggetti e non soltanto ad uno, inserisci un Sensor Collision, un And, e un’Actuator Edit Object; nel Sensor Collision aggiungi player nello spazio della Property, mentre nell’Actuator dal menù a tendina da Add Object a End Object, in questo modo la moneta si eliminerà da sola al contatto con il player, collega i mattoni, salva e prova se funziona. Se riscontri un’anomalia nella collisione, attiva l’opzione Ghost nella fisica della moneta che è di tipo Static.

Nella creazione del livello in seguito basterà clonare la moneta, così facendo tutte le monete avranno già la logica incorporata, ma questo dipenderà da quante monete voglio che si prendano prima che la porta si apra.
Inserisci un cubo e ridimensionalo a tuo piacimento in modo da creare una porta o un portone, dagli il materiale che vuoi, io uso un color legno scuro (marrone) e rinomina il tutto. Come già detto in questa fase l’importante è la logica e non la modellazione.
A questo punto dobbiamo fare in modo che quando il giocatore raccoglie un numero X di monete la porta si apre, in questo tutorial non userò animazioni che verranno trattate separatamente, quindi la porta sparirà come per magia. Nel BGE ci sono diversi modi per fare una cosa, nel senso che non esiste una sola via per risolvere un problema, in questo caso puoi implementare la logica direttamente sulla porta, e sarà essa a contare le monete attraverso una Property e poi quando il conteggio è completato scomparirà. Ma chi dice alla porta di incrementare il conteggio è la moneta stessa (ogni singola moneta), infatti prima di procedere aggiungi un’Actuator Message e collegalo all’And del Sensor Collision, in questo modo ogni volta che vi sarà una collisione verrà inviato un messaggio che aumenterà la property della porta. Nel campo To dell’Actuator scegli la porta (o l’oggetto che usi per delimitare le due aree), nel Subject io ho messo add (aggiungere), breve e semplice da ricordare perchè dobbiamo riscriverlo in seguito, inserisco un’immagine con tutta la logica della moneta fino a questo punto.
 Tra il Sensor e gli Actuator c’è un Controller And.

Adesso seleziona la porta, la prima cosa da fare è aggiungere una Property Int in modo da contare le monete una ad una, rinomina la Property in monete (o col nome che vuoi tu). Adesso inserisci un Sensor Message e un’Actuator Property, nel Sensor scrivi il Subject che hai scritto nell’Actuator della moneta (il mio è add), mentre nell’Actuator Property devi fare in modo che la Property monete aumenti di una unità ogni volta che arriva il messaggio. Se hai letto l’articolo riguardante le Properties saprai già come fare, in caso contrario inserisco un’immagine per velocizzare il processo (così non sei costretto a rileggere, ma se non l’hai fatto ti consiglio vivamente di cliccare il link qua sopra)

Metti la Property in Debug, anche qua se non sai come si fa vai a leggere la pagina del manuale sull’argomento Properties. Adesso avviando il gioco quando il player collide con la moneta la stessa scompare e nella Property della porta aumenta di una unità. Se così non dovesse essere ti invito a rifare il procedimento.

Siamo quasi agli sgoccioli, manca solo la parte che dice alla porta di scomparire, ma serve più di una moneta, quindi clonala con ALT+D, in questo modo ogni qualvolta vorrai modificare una moneta le modificherai tutte. Io ne inserisco tre, è una fase di passaggio perchè nel prossimo articolo inizierò a creare il livello e quindi a vedere quante monete servono (il numero dipende da te). Seleziona la porta inserisci un Sensor Property (per la valutazione) e un’Actuator Edit Object (per la sparizione), quindi nel Sensor Property lascia la valutazione di default (Equal), seleziona la Property monete e infine inserisci il numero di monete che vuoi valutare, nel mio caso 3 per ora; nell’Actatuator Edit Object basta che cambi da Add Object a End Object. Quindi riepilogando, quando il numero di monete è 3 la porta sparisce. Salva e fai partire il motore di gioco, inserisco l’immagine con la logica della porta di questo ultimo passaggio.

Per questo articolo è tutto, come sempre cerca di fare pratica e di smanettare con i Mattoni il più possibile. Con il sistema dei messaggi si possono inviare impulsi tra i vari oggetti, tieni a mente perchè sarà utile in svariate situazioni.