Soyez le premier à donner votre avis sur cette source.
Vue 11 933 fois - Téléchargée 470 fois
//par Q1PROUST fond=createEmptyMovieClip("fond",-1) xx=Stage.width; yy=Stage.height; fond.beginFill(0x000000,100); fond.lineStyle(3,0x000000,100); fond.moveTo(0,0); fond.lineTo(0,yy); fond.lineTo(xx,yy); fond.lineTo(xx,0); fond.lineTo(0,0); fond.endFill(); //constantes calque=1;//hauteur de depart des lignes lar=50;//largeur d'une case lon=50;//longueur d'un case //rectification constantes if(xx>lar)//arondi a un multiple de la largeur d'une case { xx=xx/lar; xx=Math.floor(xx); xx=xx*lar; } if(yy>lon)//arondi a un multiple de la longueur d'une case { yy=yy/lon; yy=Math.round(yy); yy=yy*lon; } //atribution des valeur max txmax=xx; tymax=yy; //fin const //pour les variables non-constantes nbr=0;//pour la boucle dx=0;//depart x ax=0;//arrivé x dy=0;//depart y ay=0;//arrivé y //fin //debut boucles while((dx<=txmax)&&(ay<=tymax)){ ligne="ligne"+nbr;//var pour nommer les lignes ligne=createEmptyMovieClip(ligne,calque);//crée un Movie clip vide ligne.lineStyle(1.0,0xFFFFFF,100);//definie les propriétés des lignes ligne.moveTo(dx,dy);//point de départ (coordonées) ligne.lineTo(ax,ay);//point d'arrivé (coordonées) _root.nbr++;//incrémentation de nbr pour le nom des lignes _root.calque++;// pareil pour calque pour leur hauteur _root.dx+=_root.lar;//aplication du décalage x _root.ay+=_root.lon;//aplication du decalage y } //rectification des variables non-constantes nbr=0;//pour la boucle dx=txmax;//depart x ax=txmax;//arrivé x dy=tymax;//depart y ay=tymax;//arrivé y while((dx>=0)&&(ay>=0)){ ligne="ligne"+nbr;//var pour nommer les lignes ligne=createEmptyMovieClip(ligne,calque);//crée un Movie clip vide ligne.lineStyle(1.0,0xFFFFFF,100);//definie les propriétés des lignes ligne.moveTo(dx,dy);//point de départ (coordonées) ligne.lineTo(ax,ay);//point d'arrivé (coordonées) _root.nbr++;// incrémentation de nbr pour nommer les lignes _root.calque++;// pareil pour calque pour la hauteur des lignesr _root.dx-=_root.lar;//aplication du décalage x _root.ay-=_root.lon;//aplication du decalage y } //rectification des variables non-constantes nbr=0;//pour la boucle dx=txmax;//depart x ax=txmax;//arrivé x dy=0;//depart y ay=0;//arrivé y while((dx>=0)&&(ay<=tymax)){ ligne="ligne"+nbr;//var pour nommer les lignes ligne=createEmptyMovieClip(ligne,calque);//crée un Movie clip vide ligne.lineStyle(1.0,0xFFFFFF,100);//definie les propriétés des lignes ligne.moveTo(dx,dy);//point de départ (coordonées) ligne.lineTo(ax,ay);//point d'arrivé (coordonées) _root.nbr++;//incrémentation de nbr pour le nom des lignes _root.calque++;// pareil pour calque pour leur hauteur _root.dx-=_root.lar;//aplication du décalage x _root.ay+=_root.lon;//aplication du decalage y } //rectification des variables non-constantes nbr=0;//pour la boucle dx=0;//depart x ax=0;//arrivé x dy=tymax;//depart y ay=tymax;//arrivé y while((dx<=txmax)&&(ay>=0)){ ligne="ligne"+nbr;//var pour nommer les lignes ligne=createEmptyMovieClip(ligne,calque);//crée un Movie clip vide ligne.lineStyle(1.0,0xFFFFFF,100);//definie les propriétés des lignes ligne.moveTo(dx,dy);//point de départ (coordonées) ligne.lineTo(ax,ay);//point d'arrivé (coordonées) _root.nbr++;// incrémentation de nbr pour le nom des lignes _root.calque++;// pareil pour calque pour leur hauteur _root.dx+=_root.lar;//aplication du décalage x _root.ay-=_root.lon;//aplication du decalage y } //fin
26 juin 2007 à 22:11
A coté de celui ci mon code est ... enfin il ne sert plus a rien.
Apres quelques modifications j'ai obtenu la grille que je voulais.
Merci encore.
26 juin 2007 à 19:07
import flash.geom.* ;
var cellW :Number= 30 ;
var cellH :Number= 20 ;
var gridW :Number= 300 ;
var gridH :Number= 200 ;
var infos :Rectangle= new Rectangle( cellW, cellH, gridW, gridH ) ;
var style :Object= { size:3, color:0xFF6600, alpha:50 } ;
//
var myClip :MovieClip= getClipGrid( this, infos, style ) ;
myClip._x= 20 ; myClip._y= 20 ;
//
function getClipGrid( target:MovieClip, infos :Rectangle, style:Object, name:String, depth:Number )
:MovieClip{
if( depth== null ) depth= target.getNextHighestDepth() ;
if( name== null ) name= "Grid"+depth ;
//
var grid :MovieClip= target.createEmptyMovieClip( name, depth ) ;
var draw :MovieClip= grid.createEmptyMovieClip( "draw_mc", 0 ) ;
var mask :MovieClip= grid.createEmptyMovieClip( "mask_mc", 1 ) ;
//
var maxX :Number= Math.round(infos.width/infos.x) ;
var maxY :Number= Math.round(infos.height/infos.y) ;
//
if( !isNaN(maxX) && !isNaN(maxY) ){
grid.lineStyle( style.size, style.color, style.alpha );
//
var y :Number= -1 ;
while(++y<= maxY )
{
var x:Number= -1 ;
while(++x<= maxX )
{
var deltaX :Number= x*infos.x ;
var deltaY :Number= y*infos.y ;
//
grid.moveTo( deltaX, deltaY );
grid.lineTo( deltaX+infos.x, deltaY+infos.y );
//
grid.moveTo( deltaX, deltaY );
grid.lineTo( deltaX+infos.x, deltaY-infos.y );
}
}
mask.beginFill( 0xFF6600, 20 );
mask.lineTo( infos.width, 0 );
mask.lineTo( infos.width, infos.height );
mask.lineTo( 0, infos.height );
mask.lineTo( 0, 0 );
grid.setMask(mask);
}
return grid ;
}
26 juin 2007 à 18:27
En effet c'est pas jolie :p
J'vais repasser le code sur le systeme de boucle+rotate ca sera mieu je pense.
26 juin 2007 à 18:24
Teste avec les valeurs 50 et 25, moi il manque des traits au centre de l'écran
Peg'
26 juin 2007 à 18:20
J'ai fait des tests et je ne trouve pas de bugs (j'en ai peut etre pas fait assez ?)
Peut tu me donné des valeurs pour voir à quoi ressemble le bug ?
Et puis pour les 2 boucles + rotate. Je n'y avais pas pensé, je devrais effectivement refaire mon code sous cette forme.
Enfin, Peux-tu me décrire ce qu'est pour toi une grille isometrique ?
Merci.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.