Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    9

    memorizzare una sequenza

    Ciao, spero di aver scelto la sezione corretta..



    Scrivo per avere qualche informazione relativa allo sviluppo di una seuqenza...mi spiego meglio.

    Dovrei creare una sorta di giochino in cui vengono presentate per qualche secondo 3 stelline ROSSE,

    poste in fila. In modo casuale, queste devono cambiare colore (es.GIALLO) per poi tornare ROSSE.

    Chi utilizza il giochino deve cliccare sulle stelle nello stesso ordine in cui queste hanno cambiato colore.



    Il mio problema sta nel fatto che proprio non ho idea di come creare la sequenza casuale e di come testare

    il fatto che vengano cliccate nell'ordine giusto.

    Per caso qualcuno mi sa dare qualche spunto??



    ziaoziao Roberta

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao..
    Il gioco di "simone dice!".... divertente

    Ce ne sono tanti del genere fatti in flash..

    Un link a caso: http://www.calshop.biz/gol/giochi_online/simon.html

    Ovviamente ci sono diverse varianti

    Il sistema per realizzarlo è abbastanza semplice, dipende però dal tuo livello di conoscenza di AS e dalle varie caratteristiche che vuoi dare al gioco, oltre che dalla versione di AS che intendi utilizzare...

    Sostanzialmente dovrai utilizzare un Array che popolerai con dei valori casuali tramite la funzione random().. e un setInterval che farà cambiare il colore alle stelline secondo l'ordine elaborato.
    Ed infine una funzione per la verifica del click sulle stelline...
    Questo ovviamente è il succo del discorso, però dovresti andare per passi...

    Se utilizzi AS2 posso spiegarti come procedere.

    A presto
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    9
    GRAZIE infinite!!
    per il momento butto un'occhio sul link che mi hai mandato, magari trovo qualcosa anche li..
    altrimenti, ti chiedo!!

    Grazie per le dritte che mi hai già dato!!

    Ciao Ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    9
    Sono subito andata sul link che mi hai mandato, ma li ci sono solo giochi da scarica?!?!
    Nel senso, su quel sito posso trovare anche i fla e swf??

    Mi sa che serve aiuto per AS !! Solo che non so dirti quale versione utilizzo...nel senso, io uso flash8, che che già dicendoti cosi capirai la versione di AS??

    Sono abbastanza alle prime armi...


    Grazie ancora...

  5. #5
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    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):
    1. sullo stage disegni una stellina
    2. selezioni l'intera grafica e premi F8 per trasformarla in clip filmato (questo sarà il clip di base, puoi chiamarlo "base stellina")
    3. lasciando selezionata l'istanza appena creata, premi ancora F8 per creare il clip dell'animazione (puoi chiamarlo "animazione stellina")
    4. edita il clip "animazione stellina" quindi apri il pannello Azioni e inserisci uno stop()
    5. 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.
    6. seleziona il frame 20 e premi nuovamente F6 per il keyframe finale.
    7. seleziona nuovamente il secondo frame e dal pannello Proprietà imposta Interpolazione:"Movimento"
    8. 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).
    9. torna sullo stage principale e disponi sullo stage le 3 istanze di "animazione stellina".
    10. dal pannello proprietà attribuisci a ciascuna istanza un nome, rispettivamente: s1, s2, s3.
      Questi nomi ci serviranno poi per "comandare" le istanze via script.
    11. 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.

    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    9
    URCA!!! Grazie mille per tutta la precisa spiegazione !!!

    Sono riuscita a leggerla solo ora !! Prima possibile seguo passo passo quello che mi hai scritto e vediamo se riesco a farlo !

    Il giochino è da fare da zero praticamente, nel senso devo inserirlo insieme ad altri in un contesto più ampio, ma nel suo piccolo è tutto da fare.

    Sono alle prime armi con AS, ma sono 10 anni che scrivo software, quindi direi proprio che le conoscenze a cui ti riferivi le ho, cosi come anche le nozioni di programmazione ad oggetti... nonostante questo, benvengano i commenti !!

    Grazie Grazie... appena provato ti dico !!
    Ciao, Roberta

  7. #7
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Sono alle prime armi con AS, ma sono 10 anni che scrivo software, quindi direi proprio che le conoscenze a cui ti riferivi le ho, cosi come anche le nozioni di programmazione ad oggetti... nonostante questo, benvengano i commenti !!
    Benissimo!
    Perlomeno parti con un buon vantaggio.

    Facci sapere..
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  8. #8
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Faccio subito qualche correzione in alcuni punti nella creazione del layout:

    4 - edita il clip "animazione stellina", seleziona il primo frame quindi apri il pannello Azioni e inserisci uno stop()
    10 - dal pannello proprietà attribuisci a ciascuna istanza un nome, rispettivamente: s0, s1, s2.

    Il resto dovrebbe andare bene


    edit:

    Come non detto... :master:
    Ho appena trovato un piccolo bug..
    Riporto qui lo script corretto:
    Codice PHP:
    // inizializzo le variabili
    var sequenza:Array = new Array();
    var 
    idCorrente:Number;
    var 
    clipAcceso:MovieClip;
    var 
    intervallo:Number;
    var 
    ritardo:Number;
    // azioni del pulsante di inizio gioco
    pulsante_inizio.onRelease = function() {
        
    // azzero le variabili
        
    sequenza = [];
        
    idCorrente 0;
        
    clipAcceso null;
        
    clearInterval(intervallo);
        
    clearTimeout(ritardo);
        
    // 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(accendiClip1000);
    };
    // 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);
            
    // creo un ritardo di 1.5 secondi prima di incrementa la sequenza 
            
    ritardo setTimeout(mostraSequenza1500);
        }
    };
    // funzione per attivare o disattivare gli eventi mouse dei clip durante il gioco
    var attivaClip:Function = function (v:Boolean):Void {
        for (var 
    id:Number 0id<3id++) {
            var 
    clip:MovieClip _root['s'+id];
            
    clip.enabled v;
        }
    };
    // imposto i clip
    for (var id:Number 0id<3id++) {
        var 
    clip:MovieClip _root['s'+id];
        
    clip.id id;
        
    clip.onPress verificaCorrispondenza;
    }
    // disattivo i clip
    attivaClip(false); 
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    9
    ne apporfitto per chiederti se avresti una manuale da consigliarmi per imparare bene ad utilizzare AS..

    ce ne sono veramente tanti, e la scelta risulta difficile...

  10. #10
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Mi spiace ma su Flash e AS non ho mai letto nessun manuale, a parte la sua guida o qualche informazione appresa sul web, quindi non ho la minima idea di cosa consigliarti se non dare uno sguardo, appunto, alla guida in linea del programma stesso (accessibile dal menu o premendo F1). E' abbastanza completa e presenta anche diversi esempi di script.

    Puoi trovarla anche online a questo link: http://livedocs.adobe.com/flash/8_it...rt4_ASLR2.html

    Altrimenti prova a fare una ricerca sul forum.. molto probabilmente qualche buon manuale è già stato consigliato in qualche discussione.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.