Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : c++ builder visual: probleme [ Archives / Graphique ] (HUSNET)

vendredi 4 mars 2005 à 17:43:50 | c++ builder visual: probleme

HUSNET

Slt
En fait, je suis en train de concevoir un jeux de casse-briques sur c++builder visual
mais l'ensemble de mes images (qui sont situés dans l'accolade du timer) n'arrêtent
 pas de clignoter, ce qui est vraiment embêtant et si quelqu'un pourrait me 
conseiller pour résoudre ce probleme, ce serait bien gentil.
Merci d'avance pour vos réponses.. 


dimanche 6 mars 2005 à 12:30:26 | Re : c++ builder visual: probleme

otofraise

Salut,

Le clignotement viens du rafraichissement de l'image si tu realise le trace de ta scene directement dans le TCanvas du composant qui te sert a afficher. En effet, tu dessine ta premiere image, et avant de dessiner la deuxieme tu nettoie le Canvas pour qu'il n'y ait pas de reste de la precedente image dans le zone de la seconde ou tu ne dessin pas (arf peut etre pas tres clair tout ca)

Le probleme vient du fait que le faible temps ou ton canvas redevient vide (rempli avec ta couleur de fond) n'est pas assez faible pour ne pas etre afficher. Et comme tu ractualise souvent et bien tu as un effet "stroboscopique" tres desagreable.

La solution (et oui yen a une) c'est de travailler avec un "Back Buffer". En fait tu vas realiser ton image en memoire et seulement une fois qu'elle sera prete tu va l'afficher dans ton cmposant. Ainsi ce dernier sera rafraichi avec le nouvelle image et non avec la couleur de fond sur laquelle on va petit a petit place les different traces. Avec builder tu peut utiliser le TBitmap pour joueur le role du back buffer.

Voila un petit exemple :

#include <Graphics.hpp>

void __fastcall TForm1::Timer1Timer(TObject* Sender)
{
    //Creation d'un TBitmap aux dimensions du composant servant a afficher la scene
    Graphics::TBitmap* BackBuffer = new Craphics::Bitmap();
    BackBuffer->Height = PaintBox->Height;
    BackBuffer->Width = PaintBox->Width;

    //Fonction affichant la scene (parametre : TCanvas*)
   TracerImage(BackBuffer->Canvas);

    //Affichage de l'image contenue dans le BackBuffer sur le canvas du composant
    PaintBox1->Canvas->Draw(0, 0, BackBuffer);

    //Liberation memoire
    delete BackBuffer;
}

Biensur, il est conseille de creer le BackBuffer a la creation de la Form, et de le detruire une fois l'application terminee pour des raisons de performance (en effet les dimensions du bitmap ne change pas durant tout le temps de l'application).

Voila j'espere t'avoir eclaire sur la source de ton probleme et le moyen de le resoudre.

Si je n'ai pas ete assez clair dans mes explications, n'hesite pas

Oto



Cette discussion est classé dans : visual, probleme, builder


Répondre à ce message

Sujets en rapport avec ce message

Enorme probleme lors de la compilation avec Visual C++ 6 [ par hepho ] Alors mon probleme est le suivantlorsque que je desire compiler mon programme une erreur apparaitLe pilote de clavier specifie par la ligne KEYBOARD = visual c ou c++ builder [ par seb ] Bonjour,La question est simple.Lequel de ces deux environnements est le plus adaptes a l'avenir, et quelle librairie entre mes mfc et la vcl est la pl Probleme avec Borland C++ Builder 5 [ par mantalotus ] Voila avec la fonction suivant je souhaiterai enregistrer les infos contenue dans Memo2 dans un fichier .txt mais en mode binaire. Comment dois-je fai PROBLEME EN resource Script (.rs) (visual c++) [ par elboras ] PROBLEME EN resource Script (.rs) Salut, j'ai un problême avec VISUAL C++ Je créé un nouveau fichié et je clique sur TOOLS , APP STUDIO . Ensuite quan Probleme Communication [ par fytlos ] Salut a tous,Voila je travaille sur une application distribuée ou l'on peut assimiler chaque entités a un programme en C++Dans le modele toutes les en Probleme avec Visual C++ [ par pipic ] Lorsque je compile mes fichiers .cpp avec le compilateur de visual c++, j'obtiens tjs la meme erreur :fatal error C1010: unexpected end of file while probleme d'ecriture sous visual c++ [ par f1cobra ] Salut J'ai un probleme avec ma base de donnees, quand je veux enregistrer dans un recordset comprenant plus d'une table, il refuse me disant que la ta Probleme de portabilité avec C++ Builder 6 [ par Arch0s ] Salut a tous,Voila, je suis passé a C++ Builder 6 (a ne pas confondre avec C++ Compiler !) mais le problème est que lorsque j'ai compilé mon programme Probleme avec Visual C++ [ par chabichabs ] J'ai un petit souci avec les ressources des boites de dialogue.Je crée un new projet et quand j'insère une ressource après les scroll bar (slider, pro Probleme Visual C++ et OpenOffice [ par neric69 ] BonjourJ'aimerai communiquer avec OpenOffice via Visual C++ mais je n'y arrive pas je voudrai savoir si quelqu'un l'a deja fait et si il peut deposer


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,172 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.