Toon posts:

[Flash / AS] Beperken aantal te draaien kaarten spel Memory

Pagina: 1
Acties:

Verwijderd

Topicstarter
Beste Tweakers,

Voor een opdracht moet ik een spelletje memory maken in flash. Hiervoor ben ik gedeeltelijk aan het werk gegaan met de fla die ik van flashfocus heb gedownload. Ik ben mij nog aan het ontwikkelen in actionscript, maar uit dit probleem kom ik niet..

Als ik 2 kaarten aangeklikt heb, is het de bedoeling met memory dat ze weer terugdraaien als je een nieuwe aanklikt. Je kunt nu bij mij niet die nieuwe zien, maar nu wordt de array weer opnieuw aangeroepen en het aantal beurten weer op 0 gezet. Dit moet niet de bedoeling zijn. Het stuk script hieronder staat het probleem in.
Flash ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if (counterA == 2) {
counterA = 0;
_root.totaalBeurten++
if (_root.tempKaart1.sleutel == _root.tempKaart2.sleutel){
unloadMovie (_root.tempKaart1);
unloadMovie (_root.tempKaart2);
_root.opgeruimd++;
}
else {
tempKaart1.play();
tempKaart2.play();
}
}
gotoAndPlay(2);


if(cardsInPlay > 2) {
gotoAndPlay("symbol1",1)
}


Zoals je kunt zien heb ik een variabele aangemaakt die cardsInPlay heet, zodat ik kan bijhouden hoeveel kaarten er gedraaid zijn. Ik kan er alleen niet achter komen hoe ik kan verhinderen dat de movieclip van Symbol1 aangeroepen wordt. Misschien moet ik gebruik maken van setInterval, maar misschien kan ik ook ervoor zorgen dat er gewoon geen andere aangeklikt kan worden als cardsInPlay > 2 ...

Wie kan me helpen? ik heb de fla ook online staan op :

http://www.bedrijfssimulaties.nl/documentatie/memorygame.zip

alvast super bedankt
gr Marc

[ Voor 15% gewijzigd door Verwijderd op 07-12-2006 14:54 . Reden: foute link ]


Verwijderd

ik weet het niet zeker hoor, ik kon de code niet eens vinden zonder te decompilen maar het lijkt of een zeker frame een frame aanroept waar dit op het einde staat:

counterA = 0;
cardsInPlay = 0;
totaalBeurten = 0;
opgeruimd = 0;

is dat wat er op nul gezet wordt?

indien het geval, moet je daar iets van maken ala,
if !(arraynaam)
{
counterA = 0;
cardsInPlay = 0;
totaalBeurten = 0;
opgeruimd = 0;
}

Verwijderd

Topicstarter
Ja die worden op 0 gezet als de scene geladen word, dus elke keer als hij langs dat frame komt dan worden ze gereset. dit zou eigenlijk alleen moeten gebeuren als de scene laad..
Zal dus wel een deel van het probleem zijn, maar niet het probleem waar ik echt mee zit.
Mijn primaire zorg is dat de movie tempKaart1 en tempKaart2 niet eens in actie mogen komen als cardsInPlay > 2.
Maar ik weet nu wel een deel van de oplossing van het resetten van het aantal beurten.

btw..die code staat in het 3e frame van scene "game".. in frame 2 en 3 van game zou hij moeten loopen totdat opgeruimd gelijk is aan 12..

maar iig bedankt voor de energie _/-\o_