IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

Flickering/Scintillement de TImage


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2010
    Messages : 15
    Par défaut Flickering/Scintillement de TImage
    Bonjour à tous. Je viens à la recherche de votre aide car lors d'un projet je suis entrain de créer un jeu qui tourne autour de labyrinthes. Le problème est simple, je n'arrive pas à empecher le scintillement de mon TImage lors du déplacement du personnage dans le layrinthe.


    I tried everything on this page :
    http://wiki.lazarus.freepascal.org/D...oid_flickering

    And i looked at an opensource projet for 2D games in lazarus, http://andorra.sourceforge.net/

    J'essaye de creer un bmp provisoire avant de l'inserer dans le canvas ceci ne change absolument rien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     imagecanvas.Invalidate;
             abmp := TBitMap.Create;
             abmp.LoadFromFile(aName);
             abmp.Transparent := True;
            abmp.TransparentColor := clFuchsia;
            imagecanvas.Canvas.Draw((i-1)*10, (j-1)*10, abmp);
              abmp.Free; // Release allocated resource


    I attach you our current files if you want to have a look.
    ScreenShot: http://usb-online.fr/usb-file-869.html
    Source files : http://usb-online.fr/usb-file-870.html Pour tester le scintillement, vous pouvez utiliser les touches QZSD pour faire bouger mario.


    Pensez vous que je me dirige vers une mauvaise direction? Existe il une librairie multi-plateforme simple à utiliser pour un niveau assez faible en programmation?

    Merci beaucoup pour votre aide,
    Tim

  2. #2
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    je ne connais pas bien lazarus, mais quelques petites choses me chagrine dans ton code

    - la méthode Draw() crée un bitmap, le charge depuis un fichier, le dessine pour le libère.

    il serait sans doute plus efficace de charger le bitmap une fois au démarrage et le dessiner directement.

    - dans le FromCreate tu passes par abmp pour charger background.bmp, Lazarus ne permet-il pas de placer l'image dans Image3 ? n'existe-il pas une méthode Image3.Picture.LoadFromFile ?

    - la méthode Move() de labyrinthe utilise Draw() plusieurs fois, celle-ci invoque plusieurs fois image.invalidate, il ne faudrait le faire qu'une fois en fin de move()
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2010
    Messages : 15
    Par défaut
    Bonjour, tout d'abord merci pour votre réponse rapide:

    Concernant le premier point, c'est ce que j'ai finalement choisis. Je vous met ci-joins le code sur lequel je travaille maintenant, mais en effet j'ai choisis de ne charger qu'une seule fois le bmp en début de partie.

    Concernant le 2eme point, en effet c'est possible, je vais voir mais je doute que ceci change grand chose à mon scintillement.

    Dernièrement pour le image.invalidate() c'est un résidus qu'il me restait des certains tests, mais qu'il soit la ou pas rien ne change. Je n'ai d'ailleurs pas vraiment compris à quoi il servait.

    Source Files : http://usb-online.fr/usb-file-871.html

Discussions similaires

  1. Scintillement lors du déplacement d'un TImage
    Par naute dans le forum Delphi
    Réponses: 6
    Dernier message: 03/04/2015, 09h46
  2. scintillement onglet tabcontrol sur Timage
    Par Vilukariok dans le forum Débuter
    Réponses: 4
    Dernier message: 31/08/2009, 15h53
  3. TImage + Tpanel + Scintillements sur l'image et le panel
    Par antoww42 dans le forum C++Builder
    Réponses: 3
    Dernier message: 28/12/2008, 15h26
  4. TImage et GUI, ou comment eviter les scintillements
    Par millerf dans le forum C++Builder
    Réponses: 4
    Dernier message: 10/11/2008, 05h10
  5. PictureBox + flickering (scintillement)
    Par Tips dans le forum Windows Forms
    Réponses: 3
    Dernier message: 29/01/2007, 14h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo