Déplacer un sprite sur un fond en utilisant maskblt (avec gestion de calques)

Soyez le premier à donner votre avis sur cette source.

Vue 4 362 fois - Téléchargée 529 fois

Description

Ce code propose une méthode pour déplacer un sprite sur un fond sans en affecter les pixels. Il utilise la fonction MASKBLT qui permet de dessiner un sprite avec un masque constitué d'une bitmap monochrome où les pixels blancs représentent la transparence.
En outre, le code intègre une notion de 'calques' qui permet de faire glisser les sprites les uns sur les autres.
Le sprite 0 est sur le premier calque, le sprite 1 sur le deuxième et ainsi de suite.
Consultez le fichier lisez-moi qui se trouve dans le zip pour en savoir plus.

Have fun

Codes Sources

Ajouter un commentaire Commentaires
Messages postés
460
Date d'inscription
dimanche 5 décembre 2004
Statut
Membre
Dernière intervention
6 avril 2009
2
Bonjour à toutes et à tous,

@ Laskar, bravo, sur D6 et sous Seven 64bits une petite erreur que j'avais déjà eue avec une autre source, mais en éliminant cette ligne tout est Ok :

erreur "[Erreur] Images.dpr(11): Identificateur non déclaré : 'MainFormOnTaskbar'"

**************
program Images;

uses
Forms,
Main in 'Main.pas' {Form1};

{$R *.res}

begin
Application.Initialize;
//Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
************

@+,

Cincap
Messages postés
2106
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
5
On est d' accord :) !!!

PS: j' ai eu un souci pour la sélection d' objets que j' ai contourné en mettant TForm.Scaled à false et en ne centrant pas le fond.
Messages postés
15
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
1 novembre 2010

Bien vu MAURICIO.

Je travaille sur une version qui permettra d'ajouter des objets sur le calque selectionné, de créer ou de supprimer un calque et de déplacer les calques dessus/dessous.
Les objets créés sur les calques pourront être déplacés, subir une rotation et une transformation (déformation ou miroir horizontal, par exemple).

Le but est uniquement pédagogique. Je n'ai pas la prétention de réécrire Photoshop ;-)

A bientôt.
Messages postés
2106
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
5
Salut,

la source est assez interessante même si la notion de "Layer" (couche) ici n' est pas respectée correctement!
En effet, tu sais avant le MouseDown quel objet tu vas bouger: ce n' est pas la couche que l' on selectionne mais bien l' objet à bouger.

Ce qui aurait été interessant c' est de laisser crée les objets dynamiquement sur le layer selectionné, voire même de laisser créer d' autres couches.
Ensuite, il faudrait voir sur quel objet de la couche actuelle on a cliqué pour permettre de le bouger.

Sinon, c' est pas mal du tout.

A+
Messages postés
15
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
1 novembre 2010

Merci pour votre interêt à ma modeste contribution ;-)

La version utilisée est DELPHI 2010.
Oui, CIREC, "Application.terminate" n'était pas appropriée ...
Y a-t-il une doc ou un lien concernant Bitmap32bit quelque part ?
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (cs_Laskar)