|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() Inscription : octobre 2004 Messages : 614 ![]() |
Bonjour à tous.
J'ai fais un peu c/c++ / openGL il y a de ça 2-3 ans et je me remets doucement à la programmation via flash / AS3. Je suis débutant en la matière. Mon problème se situe au niveau de la gestion des images dans un projet en actionscript. En fait, j'ai du mal à voir la logique à appliquer. J'essaie en vain de retrouver un parrallèle avec la manière de faire en OpenGL (chaque objet à une texture, que l'on peut modifier, le tout gérer par un "gestionnaire de texture", ect...) Mon principal problème vient du faire que je n'arrive pas à copier de donnée en flash. J'ai chargé une série d'images sous la forme de Loader / Sprite (je n'ai pas encore bien cerné la différence entre les deux) et j'aimerai les dupliquer, car plusieurs et mes objets possède la même texture. Exemple : je veux faires des "tiles". J'ai cherché mes X tiles et je cherche à les utiliser. Il va donc me falloir plusieurs fois le même tiles et je ne trouve pas la méthode "propre" pour faire cela en flash La seule solution que j'ai en tête et de charger une image pour chaque case de ma map (ce qui a le défaut principale de charger plusieur fois la même image et le défaut secondaire de charger une nouvelle image dès que ma case change...) Bref, vous avez sûrement dû le voir à mes explications un peu brouillonne, je suis perdu... /help |
|
|
00
|
|
|
#2 |
|
Membre éprouvé
![]() |
Tu peux draw sur un bitmap data et assigne le bitmapdata a un bitmap.
C est la maniere la plus efficace en utilisant du copy pixel et en lockant le bitmapdata |
|
00
|
|
|
#3 |
|
Membre habitué
![]() Inscription : octobre 2004 Messages : 614 ![]() |
Je vais regarder de ce côté là
|
|
|
00
|
|
|
#4 | ||
|
Membre habitué
![]() Inscription : octobre 2004 Messages : 614 ![]() |
Suite à tes conseils, j'ai chargé mes X images dans des bitmapdata et ensuite assigné chacun de ses bitmapdata a plusieurs bitmap (j'ai donc bien des copies de la même image).
Après, je ne sais pas si j'ai fais les choses de travers ou si c'est juste extrêmement lent mais pour chager 20 images en 16*16 ça me prend au moins 3/4 secondes [je n'ai pas fais de tests poussés mais à priori c'est le chargement et non l'affichage qui est lent]. Voici un morceau de mon code pour illustrer cela : Code :
|
||
|
|
00
|
|
|
#5 |
|
Membre éprouvé
![]() |
Hehe, alors ce problème ne viens pas de l affichage mais bel et bien du chargement :
1 frame minimum pour le creer , 1 frame(minimum) pour le charger, 1 frame pour chopper le complete. Donc 3 frame, 20 image => 60 frame, sa depend de ton framerate mais si tu es a 20 sa fais 3 secondes minimum effectivement... Le mieux est d utiliser une grande image contenant toutes tes images et de les découper dans ton code directement. tu peux aussi encoder en 64 puis compresser en zlib cette image et l envoyer par amfphp en bytearray. T'aura un temps de chargement bien inferieur mais j utilise sa que quand je need des perfs importante mais sa fais un peu grosse machine de guerre pour 20 images =p. j'espere t'avoir aidé. Bon week end |
|
00
|
|
|
#6 |
|
Membre habitué
![]() Inscription : octobre 2004 Messages : 614 ![]() |
Rha merci !
Effectivement, j'avais occulté le fait que mon chargement était bloquant...(et le fait que flash fonctionne en framerate fixe) Bref, cela me laisse deux solutions : - faire de grosses images que je découpe - lancer le chargement de toutes les images en même temps ( je n'avais pas fait ça au départ car je ne pouvais pas controler l'ordre de chargement de ces dernières...mais avec un petit tri de tableau, il y a moyen d'y remédier...et ca devrait être moins gourmand que toutes ces belles frames perdues...) Bref, merci encore ! C'était sous mon nez, mais tellement gros que je refusais de le voir. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com