Flash: puzzle finale

Di: annalilla | 26/09/2020 18:26:16
Non vorrei approfittare troppo della vostra disponibilità e spero di riuscire a sdebitarmi al più presto!
Cmq, ho fatto un puzzle in flash. E' composto da una serie di mc e di pulsanti. Nel primo fotogramma della scena 1 sono inserite delle mc che funzionano da area sensibile (chiamate "empty"), e delle altre che costituiscono le tessere del puzzle (chiamate "piece"), alle quali è associato questo script:
on (press) {
_root.piece1.startDrag(true);
}
on (release) {
_root.piece1.stopDrag(true);
if (_root.piece1.hitTest(_root.empty1)) {
setProperty("_root.piece1", _visible, "0");
_root.empty1.gotoAndStop(2);
}
_root.piece1.stopDrag();
}
Il puzzle funziona, ma volevo fare in modo che, quando completato, si avviasse un'animazione a parire dal fotogramma 2 della root principale.
Sto provando con hitTest in vari modi, solo che fin'ora non ho avuto successo...
Qualche consiglio?

Risposte



Ciao Annalilla,
puoi assegnare un punteggio ai giocatori, così quando il punteggio è al massimo fai partire l’animazione:
Sul primo fotogramma inserisci il valore iniziale e il valore finale:
var esatti = 0;
var totali = 15; //se il tuo puzzle ha 15 pezzi
Quindi lo script che muove le tessere aumenterà di 1 il valore di “esatti” ogni volta che l’utente indovina una posizione, se il valore di questa variabile sarà uguale al valore di “totali” fa qualcosa di diverso:
on (press) {
_root.piece1.startDrag(true);
}
on (release) {
_root.piece1.stopDrag(true);
if (_root.piece1.hitTest(_root.empty1)) {
setProperty("_root.piece1", _visible, "0");
/// aumento il valore
_root.esatti++;
/// controllo se esatti e totali coincidono
if (_root.esatti == _root.totali) {
/// se coincidono faccio partire l’animazione.
_root.gotoAndPlay(2)
}
_root.empty1.gotoAndStop(2);
}
_root.piece1.stopDrag();
}

Di: Professore | 26/09/2020 18:26:16


Funziona! Grazie! Ma non avevo dubbi...

Di: annalilla | 26/09/2020 18:26:16