GÉNÉRATEUR DE GRILLE ISO

Signaler
Messages postés
21
Date d'inscription
dimanche 13 mars 2005
Statut
Membre
Dernière intervention
28 août 2008
-
Messages postés
21
Date d'inscription
dimanche 13 mars 2005
Statut
Membre
Dernière intervention
28 août 2008
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/43252-generateur-de-grille-iso

Messages postés
21
Date d'inscription
dimanche 13 mars 2005
Statut
Membre
Dernière intervention
28 août 2008

Merci top30 pour ce code qui est (beaucoup) plus clair et plus compréhensif.
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.
Messages postés
1158
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
6 août 2010

Tu devrais essayer ceci :




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 ;
}
Messages postés
21
Date d'inscription
dimanche 13 mars 2005
Statut
Membre
Dernière intervention
28 août 2008

J'ai rien dit j'ai trouvé des valeur pour le faire bug ...
En effet c'est pas jolie :p
J'vais repasser le code sur le systeme de boucle+rotate ca sera mieu je pense.
Messages postés
6146
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
9
une grille iso est ce que tu peux trouver sur tout les RPG en 3D Isométrique, tels de Dofus (pour ne pas le citer) et dont les carrés sont souvent le double de largeur que de hauteur !

Teste avec les valeurs 50 et 25, moi il manque des traits au centre de l'écran


Peg'
Afficher les 8 commentaires