|
Dopo aver imparato a creare un semplice gioco di macchine come abbiamo scritto nella prima parte. Ora lo riprendiamo e aggiungiamo il cronometro, il numero di giri, il miglior tempo e il tempo sul giro.
1) Apriamo il file fla e andiamo nel livello 'linea_arrivo' e aumentiamo lo spessore alla linea in modo tale che sia più visibile e reale e la mettiamo verticalmente in basso. Come vediamo nella foto qui sotto:
Ora selezioniamo il clip della linea di arrivo e premiamo F9 per aggiungere il seguente codice:
onClipEvent(load){ _root.giri = 0; // numero checkpoints _root.check = 3; _root.migliorgiro = 4.1 + " SEC"; _root.tempogiro = 0 + " SEC"; start = false; }
onClipEvent(enterFrame){ if(start){ _root.crono = Math.round((getTimer()-start)/100)/10 + " SEC"; } if(this.hitTest(_root.giocatore)){ if(_root.check == 3){ _root.giri++; _root.check = 0; if(start){ _root.tempogiro = Math.round((getTimer()-start)/100)/10 + " SEC"; if(_root.tempogiro < _root.migliorgiro){ _root.migliorgiro = _root.tempogiro; } } start = getTimer(); } } }
2) Dopo aver inserito il codice alla linea di arrivo dobbiamo creare delle caselle dinamiche che contengono e visualizzano i dati al videogiocatore. Per visualizzare i dati abbiamo bisogno di 4 caselle dinamiche e assegniamo i seguenti nomi variabile accompagnati dalle etichette di testo nere come vediamo nella foto qui sotto:

3) Ora siamo arrivati all'ultimo passaggio dove la macchina guidata dall'utente per poter compiere un giro completo deve superare 3 chechpoints, un trucchetto per evitare che il videogiocatore dopo aver superato la linea di arrivo ritorni indietro per ottenere un tempo minore. Per creare questo trucchetto creiamo un nuovo livello e lo battezziamo 'checkpoints' e disegniamo una barra grigia o rossa e la convertiamo subito in moviclip premendo F8. Un checkpionts lo abbiamo creato, ora ne mancano altri due e apriamo la libreria (Ctrl+L) e trasciniamo nello stage (sempre nel livello 'checkpoints') altre due istanze simili e li mettiamo nello stage ottenendo un risultato simile alla foto che vediamo qui sotto:
Ora selezionamo il movieclip check1 e premiamo F9 per aggiungere il seguente codice:
onClipEvent(enterFrame){ if(this.hitTest(_root.giocatore)){ //trace("1"); if(_root.check == 0){ _root.check = 1; } if(_root.check >1){ _root.check = 1; } } }
selezioniamo il check2 e premiamo F9 per aggiungere il seguente codice:
onClipEvent(enterFrame){ if(this.hitTest(_root.giocatore)){ //trace("2"); if(_root.check == 1){ _root.check = 2; } if(_root.check >2){ _root.check = 2; } } }
e ora passiamo al check3 e premiamo F9 e aggiungiamo il seguente codice:
onClipEvent(enterFrame){ if(this.hitTest(_root.giocatore)){ //trace("3"); if(_root.check == 2){ _root.check = 3; } if(_root.check >3){ _root.check = 3; } } }
Questo codice verifica le collissioni verificate tra la macchina e i checkpoints, quando la casella dinamica quella che vediamo fuori dallo stage etichettata come checkpoints mostra il valore 3, vuol dire che il giocatore ha superato tutti i tre checkpoints e sta per completare il giro completo. Quando la macchina supera la linea di arrivo il codice verifica se hai superato tutti i tre checkpoints aumenta un giro e stampa il tempo nella casella 'tempogiro'.
4) Ora che siamo arrivati alla fine applichiamo in piccolo trucchetto per rendere invisibili le linee del checkpoints. Selezioniamo il livello 'checkpoints' e applichiamo la proprietà Alpha e la impostiamo a 0, come vediamo nella foto qui sotto:
5) Ora non resta che iniziare a giocare per ottenere il miglior tempo sul giro. Dopo tanti, tanti giri sono riuscito ad ottenere un record sul giro di 4.1 sec...
|