q1proust77
Messages postés21Date d'inscriptiondimanche 13 mars 2005StatutMembreDernière intervention28 août 2008
-
26 juin 2007 à 12:31
q1proust77
Messages postés21Date d'inscriptiondimanche 13 mars 2005StatutMembreDernière intervention28 août 2008
-
26 juin 2007 à 22:11
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
q1proust77
Messages postés21Date d'inscriptiondimanche 13 mars 2005StatutMembreDernière intervention28 août 2008 26 juin 2007 à 22:11
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.
top30
Messages postés1158Date d'inscriptionvendredi 21 février 2003StatutMembreDernière intervention 6 août 2010 26 juin 2007 à 19:07
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 } ;
//
q1proust77
Messages postés21Date d'inscriptiondimanche 13 mars 2005StatutMembreDernière intervention28 août 2008 26 juin 2007 à 18:27
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.
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 26 juin 2007 à 18:24
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'
q1proust77
Messages postés21Date d'inscriptiondimanche 13 mars 2005StatutMembreDernière intervention28 août 2008 26 juin 2007 à 18:20
Premierement, je te remercie Peg' d'avoir répondu...
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.
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 26 juin 2007 à 17:48
je me suis amusé à bidouiller sur ton code .. mais as-tu testé avec d'autres valeurs que celles d'origine ? Je n'ai pas été trés loin dans les tests, car ça bug de suite ... ton code n'est pas assez dynamique, je pense ..
Peg'
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 26 juin 2007 à 17:34
c'est un peu le bordel ton code ... il y a 15000fois plus simple.
De plsu une grille "isométrique" n'est pas vraiment juste une série de losanges.
Dans ton cas il suffit de tracer une grille carré dans un clip et de retourner ton clip de 45°. Deux boucles imbriquées et une simple fonction "rotate" font le même effet.
Quel est l'interêt ?
Peg'
q1proust77
Messages postés21Date d'inscriptiondimanche 13 mars 2005StatutMembreDernière intervention28 août 2008 26 juin 2007 à 12:31
Voilà ma premiere source j'espere qu'elle va vous servir.
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.
26 juin 2007 à 17:48
Peg'
26 juin 2007 à 17:34
De plsu une grille "isométrique" n'est pas vraiment juste une série de losanges.
Dans ton cas il suffit de tracer une grille carré dans un clip et de retourner ton clip de 45°. Deux boucles imbriquées et une simple fonction "rotate" font le même effet.
Quel est l'interêt ?
Peg'
26 juin 2007 à 12:31