Comparaison des techniques d'animation graphique en VB.Net par rapport à VB6
(gestion des sprites en transparence sur une image de fond)
Problème posé :
Pour que l'animation soit bien rendue, il faut afficher le fond puis les sprites (petite image en mouvement) à chaque frame (image de l'animation), ce qui provoque un scintillement ("flicker"). Pour éliminer ce scintillement, la façon la plus simple à programmer est de tracer toute l'animation dans un bitmap, puis d'afficher ce bitmap. On peut ensuite accélérer le tracé en déterminant seulement les zones qui doivent être mise à jour à chaque frame, et en invalidant ces zones afin de provoquer un rafraîchissement local : pour que cette optimisation soit complète, on peut ensuite tenir compte de ces zones pour restreindre le tracé effectif à des zones de clipping correspondantes.
- Technologies testées : GDI+, GDI + API Win32 via System.Runtime.InteropServices, DirectX7.
- Astuces employées : Buffering, AutoRedraw, Rectangle de mise à jour (invalidation), Clipping.
- Fonctionnalités : Agrandissement, transparence et rotation de bitmap (trop fort ça !!!).
Résultat : utiliser l'interopérabilité Win32 !?
Si vous connaissez des astuces que je n'ai pas mentionnées, mailez-moi SVP :-)
patrice.dargenton@free.fr
http://patrice.darge nton.free.fr/index.html
Prochaine étape : version VB.Net de Gravity Screen Saver : www.vbfrance.com/article.asp?Val=2162