Scrolling qui rame

x3nt0r Messages postés 6 Date d'inscription mardi 21 octobre 2008 Statut Membre Dernière intervention 7 mai 2009 - 7 mai 2009 à 11:11
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 - 7 mai 2009 à 15:38
Bonjour à tous ,

Je vous sollicite aujourd'hui car j'ai un soucis que je vais vous exposez maintenant :

Je suis en train d'essayer (:p) de coder un éditeur. Dans celui ci ce trouve une grille qui est contenu dans un movieclip. Cette grille est faite de 200*200 occurence dun bouton. Le problème est que, lorsque que je veux deplacer la grille pour naviguer tranquillement dans la vue, celle- ci saccade énormement.

Comment faire ?  Je pense que je m'y suis mal pris.

J'ai besoin de vous, merci par avance.

Alban.

11 réponses

cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
7 mai 2009 à 11:19
Bonjour,

200x200 ca fait 40.000 occurences du bouton... si c'est de l'AS2 et que ton ordi n'est pas une bête de courses, ca m'étonne pas trop que cela rame !

Quel est l'intéret de ces 40.000 boutons ?
Peux-tu en expliquer un peu d'avantage ?

@+
0
x3nt0r Messages postés 6 Date d'inscription mardi 21 octobre 2008 Statut Membre Dernière intervention 7 mai 2009
7 mai 2009 à 11:27
Merci Girou pour ta rapidité !

Alors je précise que c'est de l'AS3.
Mon éditeur de niveau, est constituer d'une 2D view, ou l'on va pouvoir positionner les éléments d'une bibliothèque.
La 2D view est donc divisé en carré qui sont des bouton. Le but étant de positionné les élement de la bibliothèque dans ces carré our facilité la constitution du level.

Je ne voyais pas comment faire autrement pour positionné les élément sur une grille. J'ai donc décider de constituer la grille de bouton.

Je me suis inspirer de cette éditeur : http://www.flashkod.com/codes/JEUX-PLATE-FORME-EDITEUR-NIVEAU_13775.aspx
Mais je veux pouvoir scroller la grille pour avoir une plus grande zone.

Merci encore
0
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
7 mai 2009 à 11:45
OK, c'est bien ce que je me disais...

tu devrais plutôt avoir une 'grille virtuelle' dans un tableau a 2 dimension (Array).
lorsque la souris  clique sur ton editeur, tu récupères les coordonnées x et y de la souris, tu en déduit la case concernée et tu y places  un élément de la biblioteque

Exemple grille 200 x 200
var caseSize:uint=10 (soit un editeur de 2000 x 2000 pixels)la souris click sur x:153 et y:72 il s'agit de la case x:Math.round(153/caseSize) 15 / y:Math.round(72/caseSize) 7

tu y places un élément de ta bibliotheque (element ID= 4)
-> dans ta grille virtuelle Niveau[15][7]=4
-> sur ton éditeur tu attaches le displayObject (element ID4) en x 15*caseSize et y 7*caseSize

@+
0
x3nt0r Messages postés 6 Date d'inscription mardi 21 octobre 2008 Statut Membre Dernière intervention 7 mai 2009
7 mai 2009 à 11:57
Ok, merci beaucoup pour la solution.

Je vais essayer de mettre ça en oeuvre. Etant débutant ça me parrait un poil difficile, mais je suis là pour apprendre.

Je suis persévérant !


Merci enormement ! A bientot peut être xD
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
7 mai 2009 à 14:00
pour les grilles à 2 dimensions contenant sous le même type de variable, je préconise le Vector et non l'Array .. et s'il s'agit de types int, le meilleur reste encore le ByteArray !

Peg'
0
x3nt0r Messages postés 6 Date d'inscription mardi 21 octobre 2008 Statut Membre Dernière intervention 7 mai 2009
7 mai 2009 à 14:03
Merci bien pour cette précision Pegase31 !

Je vais test tout ca.
C'était la pose miam la xD
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
7 mai 2009 à 14:06
précision supplémentaire : le Vector n'est dispo qu'à partir de Flash CS4 et uniquement en AS3.

Peg'
0
x3nt0r Messages postés 6 Date d'inscription mardi 21 octobre 2008 Statut Membre Dernière intervention 7 mai 2009
7 mai 2009 à 15:05
Bon j'avoue être assez paumé -_- ,

J'arrive a générer mon tableau mais comment le faire apparaitre visuellement ds ma vue 2D sous forme de grille, et pouvoir la faire scroll. Je rappel qu'il faut que ma grille fasse 200*200 cases de 50pix de coté
J'ai bcp de mal avec l'abstrait ou le virtuelle et je manipule mal les choses lorsqu'elles ne sont pas matérialisées :(

J'ai pas CS4 donc j'utiliserai plutot le ByteArray d'après Peg.
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
7 mai 2009 à 15:26
je vais te donner LA solution la plus simple (celle que j'utilise). Je vais être bref et concis car peu de temps à t'accorder, mais tu auras les grandes lignes :

- Tu dois bosser avec 2 éléments, le physique (les cases sur ton écran) et le logique (ton byteArray, dans le cas présent). Le physique afiche et réceptionne les actions (une interface) et le logique ne contiens que les données crées/modifiées.

La Partie Logique :

- La longueur du tableau (ByteArray) = largeur x hauteur de ta grille de cases
- index de case dans le tableau = X + (largeur * Y)
-Tu dois simplement faire des fonction de lecture/modifications de données sur une seule case (du tableau et donc de bloc) en lui donnant le X et Y à modifier et à le convertir avec les formules citées ci-dessus

La Partie Physique :

- Nul besoin de faire une super grille de milliers de boutons, seul le curseur de ta souris suffit à savoir où tu te trouves : [X ou Y] de la case = Arrondis de (souris[X ou Y] / [largeur ou Hauteur] de la case en pixels)
- Si tu veux faire un niveau à scrolling (taille de grille plus grande que celle affichable à l'écran) tu dois ajouter un point de référence de décallage de l'affichage et l'ajouter à chaque édition. Mais c'est plus complexe ...
- L'affichage des modifications est simple à faire sur un bitmap, mais attention au poids final en mémoire .. et encore une fois ça dépend de si tu as un scrolling ou pas ...

Voili, c'est abstrait, mais tu as les formules de base et la méthode globale.

Peg'
0
x3nt0r Messages postés 6 Date d'inscription mardi 21 octobre 2008 Statut Membre Dernière intervention 7 mai 2009
7 mai 2009 à 15:32
Merci beaucoup.

En effet c'est un niveau a scrolling, je vais me débrouiller avec tout ca, je pense avoir pigé la méthode.
Ca me semble beaucoup plus clair désormais.

Encore une foi merci pour la qualité et la rapidité de tes réponses.

x3n.
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
7 mai 2009 à 15:38
Remercie aussi Girou qui m'a donné envie d'approfondir mes explications .. mais n'hésite pas à nous montrer ce que ça donne ...

Peg'
0
Rejoignez-nous