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

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Gestion des sprites avec ImageList en Delphi ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Gestion des sprites avec ImageList en Delphi ?

n°1084294
Atropos
Peace Love Death Metal
Posté le 15-05-2005 à 16:35:23  profilanswer
 

Voilà je débute en delphi et je tente de réaliser une animation 2D via des sprites et ImageList
Le problème c'est que lorsque j'affiche l'image suivante d'ImageList le masque de l'image précédente reste affiché.
Je voulais savoir comment "effacer" completement l'image précédente.
Merci d'avance :jap:

mood
Publicité
Posté le 15-05-2005 à 16:35:23  profilanswer
 

n°1085005
Atropos
Peace Love Death Metal
Posté le 16-05-2005 à 07:17:47  profilanswer
 

:bounce:

n°1085709
antp
Super Administrateur
Champion des excuses bidons
Posté le 16-05-2005 à 16:40:17  profilanswer
 

Tu affiches tes images sur quoi ? Il suffit peut-être de dessiner un rectangle (FillRect ou un truc du genre) sur le canvas du composant sur lequel tu affiches tes images.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°1085865
Atropos
Peace Love Death Metal
Posté le 16-05-2005 à 18:30:00  profilanswer
 

le sprite s'affiche sur un bitmap, le tout est dans une PaintBox.
J'ai essayé de copier un rectangle du fond pour le coller sur le sprite (pour l'effacer) mais je dois mal m'y prendre puisque ça n'efface rien du tout :??:
 
voilà la partie du code :

Code :
  1. fond:=Tbitmap.create;  //écran tampon
  2. fond.Assign(image1.Picture.Bitmap);   //on lui assigne le fond
  3. //copie de la zone du fond située sous le sprite
  4.   rect1.left:=g_perso.left;
  5.   rect1.top:=g_perso.top;
  6.   rect1.bottom:=rect1.top+g_perso.height;
  7.   rect1.right:=rect1.left+g_perso.width;
  8.   fond.canvas.copyrect(rect1,image1.canvas,rect1);
  9. g_perso.Left:=g_perso.Left-5 ; //déplacement du sprite
  10.   Paintbox1.canvas.draw(0,0,fond);  //on affiche le fond
  11.   listperso.GetBitmap(1,g_perso.Picture.Bitmap); //on y colle le sprite déplacé
  12. fond.free


 
Voilà je ne vois pas où il y a un problème  :??:

n°1085883
antp
Super Administrateur
Champion des excuses bidons
Posté le 16-05-2005 à 18:39:24  profilanswer
 

C'est quoi image1 par rapport à g_perso ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°1085902
Atropos
Peace Love Death Metal
Posté le 16-05-2005 à 18:48:52  profilanswer
 

image1 est le fond sur lequel se déplace le sprite (c'est un bitmap)
g_perso est l'une des images du sprite (le 1er bitmap de l'ImageList "listperso" ).  
En gros j'ai voulu utiliser une zone tampon ("fond" ) pour redessiner le fond ("image1" ) en enlevant l'ancien sprite, puis de redessiner le sprite à sa nouvelle position, et enfin d'afficher le tout;
Mais j'ai dû me louper quelque part :D

n°1085920
antp
Super Administrateur
Champion des excuses bidons
Posté le 16-05-2005 à 18:58:13  profilanswer
 

Ta copie du fond tu dois pas la refaire chaque fois, tu dois la faire au début puis la conserver, non ?
 
Et la PaintBox, c'est quoi son rôle par rapport à image1 ?
 
Je vois toujours pas l'intérêt de g_perso en fait [:figti]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°1086242
Atropos
Peace Love Death Metal
Posté le 17-05-2005 à 07:18:44  profilanswer
 

antp a écrit :

Ta copie du fond tu dois pas la refaire chaque fois, tu dois la faire au début puis la conserver, non ?
 
Et la PaintBox, c'est quoi son rôle par rapport à image1 ?
 
Je vois toujours pas l'intérêt de g_perso en fait [:figti]


 
PaintBox c'est l'élément qui contient les 3 images
g_perso c'est le sprite lui-même
 
Je vais essayer de sortir la copie du fond de la boucle alors ;)

n°1086316
antp
Super Administrateur
Champion des excuses bidons
Posté le 17-05-2005 à 09:59:59  profilanswer
 

Je vois pas trop l'intérêt de la paintbox si tu dessines déjà tout sur un TImage
Pareil pour le sprite, pourquoi ne pas le dessiner directement de l'imagelist vers l'image principale sans passer par une image intermédiaire ?


Message édité par antp le 17-05-2005 à 10:08:36

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°1086543
Atropos
Peace Love Death Metal
Posté le 17-05-2005 à 13:26:36  profilanswer
 

Pour la paintbox je l'avais rajoutée pour tester, en effet ça marchait pareil sans.
Pour le sprite, je le copiais dans une autre image pour récupérer sa taille et sa position (je sais pas comment connaitre ces infos à partir de l'imagelist :D)


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

  Gestion des sprites avec ImageList en Delphi ?

 

Sujets relatifs
Gestion de la mémoire en delphi?[Delphi]Ressource limite de la table temporaire
Gestion des GIF et/ou des PNG sous vb.net[Framework J2EE] Gestion d'utilisateurs
gestion de fichier et mode appendProbleme de gestion des evenements claviers
[RESOLU]Gestion des erreurs dans VBpb de gestion multitaches
[PERL] Gestion des caractères accentués 
Plus de sujets relatifs à : Gestion des sprites avec ImageList en Delphi ?


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