Avatar billede seventhsun Nybegynder
16. januar 2002 - 11:37 Der er 10 kommentarer og
1 løsning

Flash Memory Spil

Jeg håber der er nogen der kan hjælpe mig.

Jeg er ved at lave et memory spil i Flash.
Jeg har taget udgangspunkt i en .fla som jeg har fundet på flashplanet.com [jeg er ikke så hård til ActionScript og slet ikke tilfældig placering]

Mit problem er at brugeren ikke skal matche to ens billeder, men par der hører sammen.

Så jeg vil høre om der er nogen der har en god idé til hvordan man får sådan et duplicated movieclip til at \'vide\' hvilken brik det er - og hvilken brik der er dens \'partner\' ?
Avatar billede barklund Nybegynder
16. januar 2002 - 11:54 #1
Hav et 2dimensionelt array i _root, der beskriver brikkerne som:

brikker = [[1, 4, 6, 2],
      [5, 5, 2, 3],
      [6, 3, 4,1]];

Når man så har klikket på to brikker kan man undersøge om

_root.brikker[denne_x][denny_y] == _root.brikker[anden_x][anden_y];

Hvis det siger dig nada, så skulle du måske tage at uploade filen eller eventuelt sende den til mig, og så kan jeg lave det for dig - til i morgen, er det okay?

Det er ganske simpelt, men kræver et grundlæggende kendskab til ActionScripting...

/Barklund
Avatar billede seventhsun Nybegynder
16. januar 2002 - 12:03 #2
det siger mig lidt, jeg har også tænkt på noget med et array.

men betyder det ikke at brikkerne altid vil være det samme sted ?
Avatar billede barklund Nybegynder
16. januar 2002 - 12:29 #3
nænej... Du har vel en funktion, der shuffler... Den skal bare sørge for at shuffle brikker-arrayet på samme måde, n\'est pas?

Først er det måske:

brikker = [[1, 1, 2, 2],
      [3, 3, 4, 4],
      [5, 5, 6, 6]];
for (var i = 1; i <= 4; i++) {
    for (var j = 1; j <= 3; j++) {
        _root.brik.duplicateMovieClip(\"brik_\" add i add \"_\" add j, ++depth);
        _root[\"brik_\" add i add \"_\" add j].gotoAndStop(depth); //i mc\'et \"brik\" er frame 1 og 2 et par, 3 og 4 er et par og så videre
    }
}

Og så shuffler vi:

for (var i = 1; i <= 4; i++) {
    for (var j = 1; j <= 3; j++) {
        anden_i = random(4)+1;
        anden_j = random(3)+1;
        d_brik = _root[\"brik_\" add i add \"_\" add j];
        a_brik = _root[\"brik_\" add anden_i add \"_\" add anden_j];
        temp_x = d_brik._x;
        temp_y = d_brik._y;
        d_brik._x = a_brik._x;
        d_brik._y = a_brik._y;
        a_brik._x = temp_x;
        a_brik._y = temp_y;
        temp_pair = brikker[i-1][j-1];
        brikker[i-1][j-1] = brikker[anden_i-1][anden_j-1];
        brikker[anden_i-1][anden_j-1]
= temp_pair;   
    }
}

Herefter vil så kunne (hvis der i \"brik\" nederst ligger en knap der kalder funktionen)

if (brikker[first_i][first_j] == brikker[second_i][second_j]) {
    trace(\"teløks\");
} else {
    // gem brikker og prøv igen...
}

Følger du?

/Barklund





Avatar billede barklund Nybegynder
20. januar 2002 - 16:22 #4
Skal jeg sende dig et eksempel på et hurtigt Memory-spil?

Har du en email?
Avatar billede seventhsun Nybegynder
21. januar 2002 - 10:57 #5
jeg har fixet det - tak for hjælpen !

Avatar billede barklund Nybegynder
21. januar 2002 - 15:38 #6
Nu har jeg altså lavet et demospil til dig, så du har bare at poste din email, så jeg kan komme af med det :o)
Avatar billede seventhsun Nybegynder
21. januar 2002 - 17:26 #7
øh ok - som sagt har jeg løst problemet selv, og skal bare ha sat grafik på i den nærmeste fremtid.

og jeg synes da nogenlunde at jeg fik gennemskuet koden i mit udgangspunkt !

men det kan da være at du har en enklere måde at løse det på ?

så du kan sende det til: jaha@dr.dk
Avatar billede barklund Nybegynder
21. januar 2002 - 17:47 #8
Mail smidt... og hermed et svar, hvis du finder mig egnet til point... :o)
Avatar billede seventhsun Nybegynder
22. januar 2002 - 15:47 #9
det ser meget enkelt ud

- tak skal du ha
Avatar billede mhnielsen Nybegynder
08. december 2003 - 21:44 #10
Hej Barklund

Jeg ved godt det er længe siden dette spørgsmål, men jeg ville egentligt gerne se et lille eksempel på et hurtigt memory spil.. Hvis du selvfølgelig stadig har filen..

/Mhnielsen
Avatar billede barklund Nybegynder
11. december 2003 - 18:12 #11
Hm, det har jeg vist ikke :) Desværre :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester