Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1157 connectés 

  FORUM HardWare.fr
  Programmation

  [C++Builder] Animation graphique

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++Builder] Animation graphique

n°117169
lkolrn
<comment ça marche?>
Posté le 25-03-2002 à 14:40:07  profilanswer
 

g besoin de faire s'animer un objet dans une fiche C++Builder. Pou se faire, j'utilise 10 images du même objet dans ses différentes positions d'animation. Le pb, c ke lorsk je demande d'enchainer les images en les rendant visibles les 1 apres les autres, C++Builder execute tout le code, et graphiquement on voit la 1ere image, puis directement la derniere... Si je lui demande de faire une pause (Sleep()) entre chak image, il affiche la 1ere image, puis execute toutes les pauses d'1 coup et enfin affiche la derniere image. Ma question: comment animer de façon fluide cet ensemble de 10 images sans faire des Refresh() pas bo du tout...?
 
MERCI D'AVANCE...

mood
Publicité
Posté le 25-03-2002 à 14:40:07  profilanswer
 

n°117226
antp
Super Administrateur
Champion des excuses bidons
Posté le 25-03-2002 à 15:52:42  profilanswer
 

Essaie en mettant tes 10 images dans un .avi (non compressé, ou compressé en RLE, en peu de couleurs) et utilise le TAnimate (palette Win32 je crois)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°117243
mikegyver
Le H de Hawaï, ça sert à rien
Posté le 25-03-2002 à 16:11:29  profilanswer
 

Non, en fait il faut mettre entre chaque image la ligne :
Application->ProcessMessages();
C'est une fonction qui dit à Windows de laisser passer tous les messages qui sont envoyés y compris ceux de l'affichage.

n°117249
antp
Super Administrateur
Champion des excuses bidons
Posté le 25-03-2002 à 16:20:08  profilanswer
 

Oui, mais il cherchait une solution plus élégante que le Refrech(). Application->ProcessMessages() c'est encore plus lourd que Refresh().
Le TAnimate est quand même plus léger pour ce genre de choses je pense...

 

[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°117311
lkolrn
<comment ça marche?>
Posté le 25-03-2002 à 17:50:36  profilanswer
 

sauf ke l'AVI c tres tres lourd...!

n°117322
antp
Super Administrateur
Champion des excuses bidons
Posté le 25-03-2002 à 18:03:00  profilanswer
 

Un avi en RLE palettisé c'est pas beaucoup plus lourd qu'un gif en LZH palettisé...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°117324
lkolrn
<comment ça marche?>
Posté le 25-03-2002 à 18:05:53  profilanswer
 

ok, seulement je ne c pas à quel output format ca correspond dans 3DS... Ca veut dire koi RLE...?

 

[jfdsdjhfuetppo]--Message édité par LKoLRn--[/jfdsdjhfuetppo]

n°117381
antp
Super Administrateur
Champion des excuses bidons
Posté le 25-03-2002 à 20:17:49  profilanswer
 

Un genre de GIF/ZIP simplifié.
C'est utilisé pour les BMP en 2, 16 & 256 couleurs.
À la limite tu le sauve en AVI non compressé, puis avec un soft genre Jasc Animation Shop tu réduis à 256 couleurs et tu encodes en RLE.
Mais vu que Animation Shop se base sur les codecs Windows tu devrais pouvoir faire de même:
http://ibelgique.ifrance.com/antp/_images/animshop_avi_rle.png

 

[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°118009
lkolrn
<comment ça marche?>
Posté le 27-03-2002 à 09:51:20  profilanswer
 

bon, g essayé d'utiliser ta méthode, seulement c ka mem tres lourd, cad ke la video prend bcp de place dans les sources du projet... En +, la limite des 256 couleurs est trop faible, cad k'on voit bien la différence avec le reste des graphismes (ki sont en 24 bits)...
 
Donc le pb reste entier...!

n°118011
antp
Super Administrateur
Champion des excuses bidons
Posté le 27-03-2002 à 09:54:37  profilanswer
 

Ha :/
Bhen donc du GIF animé ça ira pas mieux, vu que c'est aussi en 256 couleurs.
Tu peux toujours essayer du AVI compressé avec un autre codec, mais si c'est une compression avec perte ça ne donnera peut-être pas bien...
Reste le MNG (PNG animé), mais pour trouver un composant l'acceptant c'est une autre histoire, je ne suis pas sûr que ça existe...
Donc la solution des images alternées est la plus simple. Et à part un Refresh à chaque changement d'image je ne sais pas s'il y a une solution simple.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
mood
Publicité
Posté le 27-03-2002 à 09:54:37  profilanswer
 

n°118085
mikegyver
Le H de Hawaï, ça sert à rien
Posté le 27-03-2002 à 12:26:27  profilanswer
 

antp a écrit a écrit :

Ha :/
Bhen donc du GIF animé ça ira pas mieux, vu que c'est aussi en 256 couleurs.
Tu peux toujours essayer du AVI compressé avec un autre codec, mais si c'est une compression avec perte ça ne donnera peut-être pas bien...
Reste le MNG (PNG animé), mais pour trouver un composant l'acceptant c'est une autre histoire, je ne suis pas sûr que ça existe...
Donc la solution des images alternées est la plus simple. Et à part un Refresh à chaque changement d'image je ne sais pas s'il y a une solution simple.  




 
Tout à fait d'accord... Mais bon, j'ai passé des heures et des heures à trouver un moyen d'optimiser l'animation sous Windows et il s'est avéré que finalement il est plus sage d'utiliser DirectX. Builder le gère très bien en ce qui concerne les fonction basiques


---------------
...m'enfin !!!
n°118128
taureau
Posté le 27-03-2002 à 13:59:29  profilanswer
 

si c'est juste pour faire tourner une animation de 10 images directx est vraiment une solution "bourrin" c'est comme écraser une mouche avec un marteau  :D  
 
commence par essayer les dizaines de composants tout fait pour les anims de bitmap cela me semble une solution plus rationnelle

n°118187
antp
Super Administrateur
Champion des excuses bidons
Posté le 27-03-2002 à 14:56:31  profilanswer
 

C'est vrai, j'y ai même pas pensé, y a des compos qui font des anims avec des séquences de bmp :o


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°118260
lkolrn
<comment ça marche?>
Posté le 27-03-2002 à 16:29:23  profilanswer
 

Ya 1 composant TImageList, mais c koi les 10aines d'autres...?

n°118267
antp
Super Administrateur
Champion des excuses bidons
Posté le 27-03-2002 à 16:37:16  profilanswer
 

TImageList c'est pour stocker des images, pour les menus, listivew, actionlist, toolbar, etc...
Y a sûrement des compos pour afficher successivement toutes les images d'une TImageList.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°118269
antp
Super Administrateur
Champion des excuses bidons
Posté le 27-03-2002 à 16:38:48  profilanswer
 

http://www.torry.net/animated.htm
Y en a des qui sont "FWS", Freeware with source, vaut mieux prendre ceux-là.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C++Builder] Animation graphique

 

Sujets relatifs
[C++ Builder] Win32 Error. Code : 1410.La classe existe déjà[java] meilleur editeur pour creation graphique
[C++ Builder] desactiver la mise en veille de l'ecran[C++ Builder] Convertir char* to AnsiString
[C++ Builder] cherche livre[C] Interface graphique
[C++(builder)] Convertir AnsiString en *wchar_tc++ > mettre des bmp dans builder...
[C++ Builder] Utilisation de l'API NetMessageBufferSendVisual C++ VS C++ Builder
Plus de sujets relatifs à : [C++Builder] Animation graphique


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR