Damier avec une boucle

sliverman
Messages postés
83
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
8 juillet 2008
- 10 nov. 2007 à 11:11
el creator
Messages postés
5
Date d'inscription
jeudi 24 février 2005
Statut
Membre
Dernière intervention
26 mars 2010
- 26 mars 2010 à 14:36
Bonjour à tous,

Je suis en train de m'entrainer un peu mais la je bloque, je fais tout en actionscript 2.0, donc je fait this.createEmptyMovieClip("monclip_mc", 0);
monclip_mc.lineStyle(2, 0x663300, 100);
monclip_mc.beginFill(0x000000, 100);
monclip_mc.lineTo(0,0);
monclip_mc.lineTo(0,50);
monclip_mc.lineTo(50,50);
monclip_mc.lineTo(50,0);
monclip_mc.lineTo(0,0);
monclip_mc.endFill();

Le problème est que je voudrais crée 64 cases ( un damier ou échéquier ) donc il faut faire une boucle et placer le tout correctement mais je ne sais pas comment faire et encore en plus il y a les cases noir et blanche...donc il faut crée deux clip...

Je ne sais pas du tout comment faire la boucle la...

Merci d'avance

2 réponses

saibe
Messages postés
46
Date d'inscription
lundi 19 mai 2003
Statut
Membre
Dernière intervention
16 avril 2009

8 déc. 2007 à 04:26
salut !
vala ce que je te propose :
ça utilise la methode duplicateMovieClip(mc, profondeur, paramètres)

// création de la case noire -> tu peux aussi faire un attachmovie sur un élément de ta bibliothèque ce qui te permettrais de faire une jolie case plus simplement, m'enfin...;)
this.createEmptyMovieClip("case_noire", this.getNextHighestDepth());
case_noire.lineStyle(2, 0x663300, 100);
case_noire.beginFill(0x000000, 100);
case_noire.lineTo(0,0);
case_noire.lineTo(0,50);
case_noire.lineTo(50,50);
case_noire.lineTo(50,0);
case_noire.lineTo(0,0);
case_noire.endFill();
// je le cache car c'est juste un model de base
case_noire._visible = false;

//création de la case blanche
this.createEmptyMovieClip("case_blanche", this.getNextHighestDepth());
case_blanche.lineStyle(2, 0x663300, 100);
case_blanche.beginFill(0xFFFFFF, 100);
case_blanche.lineTo(0,0);
case_blanche.lineTo(0,50);
case_blanche.lineTo(50,50);
case_blanche.lineTo(50,0);
case_blanche.lineTo(0,0);
case_blanche.endFill();
// je cache aussi
case_blanche._visible = false;

// on trace l'échiquier 8x8
for(var i=0; i<8; i++){
    for(var j=0; j<8; j++){
       // condition grace à un modulo
        if((j+i)%2){
            case_noire.duplicateMovieClip("case_"+i+j, this.getNextHighestDepth(), {_x:j*50, _y:i*50});
        }
        else{
            case_blanche.duplicateMovieClip("case_"+i+j, this.getNextHighestDepth(), {_x:j*50, _y:i*50});
        }
    }
   
}

vala

saibe
0
el creator
Messages postés
5
Date d'inscription
jeudi 24 février 2005
Statut
Membre
Dernière intervention
26 mars 2010

26 mars 2010 à 14:36
Merci pour ce petit bout de code basique mais très pratique,
pour faire la même chose mais en plus jolie avec la méthode attachMovie, voici:

// il faut préalablement créer un clip avec comme nom de liason "damier_mc"
// pour faire une liaison sur ce clip, allez dans votre bibliothèque > clique droit sur le clip en question
// choisir "liaison" dans le menu
// puis, pour identifiant, mettez "damier_mc"...

//faites la même chose pour avoir un damier blanc (cas 2), qu'on nommera ici "damier_blanc_mc"
// on trace l'échiquier 8x8
for(var i=0; i<8; i++){
    for(var j=0; j<8; j++){
       // condition grace à un modulo
        if((j+i)%2){
            newClip = _root.attachMovie("damier_mc","case_"+i+j,this.getNextHighestDepth());
            newClip._y =i*squareSide;
    newClip._x = j*squareSide;
        }
        else{
            newClip = _root.attachMovie("damier_blanc_mc","case_"+i+j,this.getNextHighestDepth());
            newClip._y =i*squareSide;
    newClip._x = j*squareSide;
        }
    }
   
}

//on peut aller plus lin en ajoutant par exemple des Tween
//une piste:
// var alpha_tween = new Tween(newClip, "_alpha", Regular.easeIn, 0, 80, 1.2, true);





Mecanographik - http://www.mecanographik.fr
0