Realizzare Puzzle Bobble (Bust a Move) [2 di ?]

Potrebbero interessarti anche...

3 Risposte

  1. Marco ha detto:

    Ciao, tutorial ben fatto!!; davvero utile!

    solo che non capisco questo passaggio:

    private function checkGroups(b:Sphere) {
    var sameColorGroups:Array = new Array(); /// L’elenco dei gruppi che dobbiamo unificare
    var neighborsNames:Array = [ /// L’elenco dei nomi delle 6 sfere da richiamare
    /// A destra
    ‘Sphere_’ + Number(parseInt(b.name.split(‘_’)[1]) + _radius) + ‘_’ + b.name.split(‘_’)[2],
    /// In basso a destra
    ‘Sphere_’ + Number(parseInt(b.name.split(‘_’)[1]) + (_radius/2)) + ‘_’ + Number(parseInt(b.name.split(‘_’)[2]) +Math.floor(_radius*EQUILATERAL_TRIANGLE_HEIGHT)),
    /// In basso a sinistra
    ‘Sphere_’ + Number(parseInt(b.name.split(‘_’)[1]) – (_radius/2)) + ‘_’ + Number(parseInt(b.name.split(‘_’)[2])+Math.floor(_radius*EQUILATERAL_TRIANGLE_HEIGHT)),
    /// A sinistra
    ‘Sphere_’ + Number(parseInt(b.name.split(‘_’)[1]) – _radius) + ‘_’ + b.name.split(‘_’)[2],
    /// In alto a sinistra
    ‘Sphere_’ + Number(parseInt(b.name.split(‘_’)[1]) – (_radius/2)) + ‘_’ + Number(parseInt(b.name.split(‘_’)[2])-Math.floor(_radius*EQUILATERAL_TRIANGLE_HEIGHT)),
    /// In alto a destra
    ‘Sphere_’ + Number(parseInt(b.name.split(‘_’)[1]) + (_radius/2)) + ‘_’ + Number(parseInt(b.name.split(‘_’)[2])-Math.floor(_radius*EQUILATERAL_TRIANGLE_HEIGHT))
    ];

    esattamente come fai a trovare le palline intorno, e se dovessi percorrere una tabella quadrata =??..

    faccio la stessa cosa solo per 4 volte? sopra, sotto, dx e sx?

    Marco

    • Daniele Alessandra ha detto:

      Ciao Marco, grazie per l’apprezzamento.

      La porzione di codice che riporti serve a chiamare per nome le sfere che ci interessano, nel precedente articolo avevo stabilito che ogni sfera contenesse indicazioni sulla sua posizione nel suo stesso nome, quindi ogni sfera è un MovieClip che ha un nome simile a questo:

      Sphere_3_15

      Dove “3” è la posizione x e “15” è la posizione y.

      Questi due valori mi dicono dove si trova esattamente la sfera corrente,b.name.split(‘_’)[1] mi dice il primo numero (ad esempio “3”) e b.name.split(‘_’)[2] mi dice il secondo numero (ad esempio “15”); applicando poi delle semplici formule utilizzo questi due numeri per ottenere le coppie di numeri corrispondenti alle 6 sfere che circondano quella attuale.

      Se utilizzi un sistema simile con una griglia a base quadrata i calcoli saranno molto più semplici di così, visto che ognuna della 4 sfere che sta in posizione destra, sinistra, sopra o sotto avrà sempre uno di questo due numeri in comune con la sfera originale.

      Supponi di avere ad esempio la sfera chiamata Sphere_5_7, alla sua destra ci sarà la Sphere_6_7 e alla sua sinistra ci sarà la Sphere_4_7; tutte e tre stanno ad altezza 7 ma la loro posizione orizzontale varia da 4 a 6.

      Sempre partendo dalla posizione Sphere_5_7 troverai la sfera che sta sotto con il nome Sphere_5_8 e quella che sta sopra come Sphere_5_6.

      In questo esempio i valori si incrementano di 1 in 1 ma è possibile che nel tuo reale caso la differenza di coordinata tra una sfera e la successiva sarà pari al diametro della sfera, quindi, con un diametro d’esempio di 30 pixel, ti sposteresti da 5 a 35 a 65 a 95, eccetera…

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *