Il link era solo di riferimento a questo tipo di gioco.
Non devi scaricare niente da quel sito.. era giusto per capire più o meno cosa vuoi realizzare.
Se utilizzi flash 8 si parla di AS2.
Devo capire però da che punto stai partendo.
La tua richiesta è "memorizzare una sequenza".. ma se devi creare il gioco da zero e peraltro sei alle prime armi con AS, siamo un po' lontani..
Hai delle nozioni base di programmazione?
Per capirci... sai cos'è una variabile? sai cos'è una funzione? sai cos'è un ciclo for, almeno concettualmente?
In qualunque caso io ho preparato tutto lo script necessario per il funzionamento base del gioco..
Partiamo però dal realizzare l'interfaccia grafica se non lo hai già fatto.
Dovrai quindi creare un clip che nel tuo caso sarà una stellina, il quale avrà uno stato "normale" è uno "acceso" (potrebbe essere anche animata per dare il senso di accensione e spegnimento)
Ecco come fare (ti spiego passo passo):
- sullo stage disegni una stellina
- selezioni l'intera grafica e premi F8 per trasformarla in clip filmato (questo sarà il clip di base, puoi chiamarlo "base stellina")
- lasciando selezionata l'istanza appena creata, premi ancora F8 per creare il clip dell'animazione (puoi chiamarlo "animazione stellina")
- edita il clip "animazione stellina" quindi apri il pannello Azioni e inserisci uno stop()
- ora dovrai creare lo stato "acceso" per il quale facciamo un'animazione con un'interpolazione di movimento. Nella timeline seleziona il secondo frame e premi F6 per creare il keyframe iniziale dell'interpolazione.
- seleziona il frame 20 e premi nuovamente F6 per il keyframe finale.
- seleziona nuovamente il secondo frame e dal pannello Proprietà imposta Interpolazione:"Movimento"
- seleziona quindi l'istanza sullo stage e crea l'effetto per rendere accesa la stellina. Puoi semplicemente variare la tonalità di colore attraverso il pannello proprietà, impostando Colore:"Tinta" e scegliendo un colore (ad esempio giallo).
- torna sullo stage principale e disponi sullo stage le 3 istanze di "animazione stellina".
- dal pannello proprietà attribuisci a ciascuna istanza un nome, rispettivamente: s1, s2, s3.
Questi nomi ci serviranno poi per "comandare" le istanze via script. - a questo punto direi di aggiungere un pulsante per fare in modo di iniziare il gioco.
Crea quindi un pulsante (spero tu sappia come fare).
Disponi una sua istanza sullo stage principale e nomina l'istanza come: "pulsante_inizio"
Il layout è pronto..
Se non hai commesso errori dovrebbe funzionare. Basterà creare un nuovo layer sulla timeline principale ed inserire questo script:
codice:
// inizializzo le variabili
var sequenza:Array = new Array();
var idCorrente:Number;
var clipAcceso:MovieClip;
var intervallo:Number;
// azioni del pulsante di inizio gioco
pulsante_inizio.onRelease = function() {
// azzero le variabili
sequenza = [];
idCorrente = 0;
clipAcceso = null;
clearInterval(intervallo);
// disattivo i clip
attivaClip(false);
// avvio la visualizzazione della sequenza
mostraSequenza();
};
// funzione che visualizza la sequenza
var mostraSequenza:Function = function ():Void {
// aggiungo un valore casuale alla sequenza (il valore sarà compreso tra 0 e 2)
sequenza.push(random(3));
// azzero variabili
idCorrente = 0;
clipAcceso = null;
// accendo i clip in sequenza
accendiClip();
intervallo = setInterval(accendiClip, 1000);
};
// funzione richiamata dal setInterval
var accendiClip = function ():Void {
// quando la sequenza è completa
if (idCorrente == sequenza.length) {
// interrompo l'intervallo
clearInterval(intervallo);
// azzero l'indice della sequenza
idCorrente = 0;
// attivo i clip (il giocatore può interagire)
attivaClip(true);
} else {
// accendo clip in base al valore corrente della sequenza
clipAcceso = _root['s'+sequenza[idCorrente++]];
clipAcceso.gotoAndPlay(2);
}
};
// funzione di verifica richiamata ad ogni click sui clip
var verificaCorrispondenza:Function = function ():Void {
// accendi il clip cliccato
this.gotoAndPlay(2);
// se l'id del clip non è uguale al valore corrente della sequenza
if (this.id != sequenza[idCorrente++]) {
// hai sbagliato!!!
//
// disattiva i clip
attivaClip(false);
//************************************
//
// INSERIRE QUI IL RESTO DELLE AZIONI
//
//************************************
} else if (idCorrente == sequenza.length) {
// disattivo i clip
attivaClip(false);
// attendi 1.5 secondi e incrementa la sequenza
setTimeout(mostraSequenza, 1500);
}
};
// funzione per attivare o disattivare gli eventi mouse dei clip durante il gioco
var attivaClip:Function = function (v:Boolean):Void {
for (var id:Number = 0; id<3; id++) {
var clip:MovieClip = _root['s'+id];
clip.enabled = v;
}
};
// imposto i clip
for (var id:Number = 0; id<3; id++) {
var clip:MovieClip = _root['s'+id];
clip.id = id;
clip.onPress = verificaCorrispondenza;
}
// disattivo i clip
attivaClip(false);
E' commentato riga per riga ma ovviamente per capirne bene il funzionamento bisogna studiarlo un po'.. se ci sono parti che non capisci, chiedi pure.