image deplacable

Le
John-Pet
Hello

Dans une picturebox contenant comme picture un carte, j'ai mis une
autre image (par dessus la première) mais très petite representant une
bouée
Je voudrais pouvoir déplacer cette bouée avec la souris
Quelqu'un a t'il une piste pour y arriver

Merci

JP

--
Adresse mail : john-pet@wanadoo.fr
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacques93
Le #17447931
Bonjour John-Pet,
John-Pet a écrit :
Hello

Dans une picturebox contenant comme picture un carte, j'ai mis une autre
image (par dessus la première) mais très petite representant une bouée
Je voudrais pouvoir déplacer cette bouée avec la souris
Quelqu'un a t'il une piste pour y arriver




Peut être t'inspirer de la gestion des sprites. Par exemple :


--

Cordialement,

Jacques.
John-Pet
Le #17451241
Merci pour ta réponse

mais ce que je cherche c'est de prendre l'a bouée avec un clic droit et
la déposer en relachant la souris

JP


Jacques93 a formulé la demande :
Bonjour John-Pet,
John-Pet a écrit :
Hello

Dans une picturebox contenant comme picture un carte, j'ai mis une autre
image (par dessus la première) mais très petite representant une bouée
Je voudrais pouvoir déplacer cette bouée avec la souris
Quelqu'un a t'il une piste pour y arriver




Peut être t'inspirer de la gestion des sprites. Par exemple :




--
Adresse mail :
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
David
Le #17451581
Bonjour John-Pet,

Je pense ce cet ambrion de programme
vous sera utile.
Je vous mets le programme tel quel, brute de décoffrage.
A vous d'extraire ce qui vous est vraiment utile.
Les 2 boutons ne vous seront d'aucune utilité.

http://users.skynet.be/DAVID/Fichiers_Tempo.htm

et cliquez sur déplacement
--
a+ Jean-Pol
Site Web : www.colovid.be
Site Web perso pour le fun : http://users.skynet.be/DAVID/


"John-Pet"
Hello

Dans une picturebox contenant comme picture un carte, j'ai mis une autre
image (par dessus la première) mais très petite representant une bouée
Je voudrais pouvoir déplacer cette bouée avec la souris
Quelqu'un a t'il une piste pour y arriver

Merci

JP

--
Adresse mail :
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net




bahn po
Le #17451721
John-Pet a exprimé avec précision :
Hello

Dans une picturebox contenant comme picture un carte, j'ai mis une autre
image (par dessus la première) mais très petite representant une bouée
Je voudrais pouvoir déplacer cette bouée avec la souris
Quelqu'un a t'il une piste pour y arriver

Merci

JP



Option Explicit

Private Type POINTAPI
X As Long
Y As Long
End Type
Private Declare Function GetCursorPos Lib "user32" (lpPoint As
POINTAPI) As Long


Private Sub Picture2_MouseMove(Button As Integer, Shift As Integer, X
As Single, Y As Single)
Dim p As POINTAPI


If Button = 1 Then
Call GetCursorPos(p)
Picture2.Left = p.X * 15 - Form1.Left - 500
Picture2.Top = p.Y * 15 - Form1.Top - 500
Picture2.Refresh
End If

end sub


Ci-dessus un exemple d'une picture2 qui se déplace quand tu click
gauche dessus. Désolé pour la formule "p.X * 15 - Form1.Left - 500",
j'ai pas trouvé mieux, mais ça marche :)

Bonne soire.
Jacques93
Le #17457741
Bonjour John-Pet,
John-Pet a écrit :
Merci pour ta réponse

mais ce que je cherche c'est de prendre l'a bouée avec un clic droit et
la déposer en relachant la souris




Il suffit d'adapter le code (et l'image). Dans le code proposé, Homer
suit la souris; tu peux modifier assez simplement le comportement, en
ajoutant, par exemple une variable booléenne :

Dim bMouseDown As Boolean

dans le code de frmJeux, et adapter le code pour déterminer si on a
cliqué sur Homer :

Private Sub PicFond_MouseDown(Button As Integer, _
Shift As Integer, _
X As Single, Y As Single)
' Vérifie si on a cliqué sur Homer avec le
' bouton gauche
bMouseDown = (Button = vbLeftButton) And _
X >= Sprite(Homer).X And _
X <= (Sprite(Homer).X + Sprite(Homer).Largeur) And _
Y >= Sprite(Homer).Y And _
Y <= (Sprite(Homer).Y + Sprite(Homer).Hauteur)
End Sub

Private Sub PicFond_MouseUp(Button As Integer, _
Shift As Integer, _
X As Single, Y As Single)
bMouseDown = False

End Sub

Private Sub PicFond_MouseMove(Button As Integer, Shift As Integer, X As
Single, Y As Single)

' Mémorise la position de la souris pour placer Homer
' Si on a pas cliqué sur Homer on sort => Homer ne bouge pas.
If Not bMouseDown Then Exit Sub
Sprite(Homer).X = X
Sprite(Homer).Y = Y


L'intérêt, à mon sens, de cette méthode, est la fluidité du
déplacement, pas de d'effets de trainée, pas de déplacement saccadé.


--

Cordialement,

Jacques.
Jacques93
Le #17463291
John-Pet a écrit :
Merci pour ta réponse

mais ce que je cherche c'est de prendre l'a bouée avec un clic droit et
la déposer en relachant la souris




Ci-joint un petit programme simplifié, par rapport au lien, qui semble
répondre à ta demande. Sauf si la bouée est trop grosse ;-)


Difficile à placer ici, avec les images, et le code, pas très long, mais
les coupures de lignes sont fréquentes sur les API. Et mes pages perso
Orange sont inaccessibles :-(

Il faudrait fignoler pour pas sortir de l'écran, ou plutôt de la
feuille, mais c'est de l'ordre de la finition ...



Jacques93 a formulé la demande :
Bonjour John-Pet,
John-Pet a écrit :
Hello

Dans une picturebox contenant comme picture un carte, j'ai mis une
autre image (par dessus la première) mais très petite representant
une bouée
Je voudrais pouvoir déplacer cette bouée avec la souris
Quelqu'un a t'il une piste pour y arriver




Peut être t'inspirer de la gestion des sprites. Par exemple :








Ci-joint un petit programme simplifié, par rapport au lien, qui semble
répondre à ta demande. Sauf si la bouée est trop grosse ;-)

--

Cordialement,

Jacques.
John-Pet
Le #17463791
Je vous remercie tous les trois pour votre aide

voilà différentes façon pour résoudre mon problème avec chacun des + et
des -

Cordialement

JP

--
Adresse mail :
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
John-Pet
Le #17463781
merci pour ton exemple
j'étais en train de simplifier le homer et cie

et voilà que ça me tombe du ciel
ça me va très bien

merci encore

Cordialement

JP

Jacques93 avait écrit le 08/10/2008 :
John-Pet a écrit :
Merci pour ta réponse

mais ce que je cherche c'est de prendre l'a bouée avec un clic droit et la
déposer en relachant la souris




Ci-joint un petit programme simplifié, par rapport au lien, qui semble
répondre à ta demande. Sauf si la bouée est trop grosse ;-)


Difficile à placer ici, avec les images, et le code, pas très long, mais les
coupures de lignes sont fréquentes sur les API. Et mes pages perso Orange
sont inaccessibles :-(

Il faudrait fignoler pour pas sortir de l'écran, ou plutôt de la feuille,
mais c'est de l'ordre de la finition ...



Jacques93 a formulé la demande :
Bonjour John-Pet,
John-Pet a écrit :
Hello

Dans une picturebox contenant comme picture un carte, j'ai mis une autre
image (par dessus la première) mais très petite representant une bouée
Je voudrais pouvoir déplacer cette bouée avec la souris
Quelqu'un a t'il une piste pour y arriver




Peut être t'inspirer de la gestion des sprites. Par exemple :








Ci-joint un petit programme simplifié, par rapport au lien, qui semble
répondre à ta demande. Sauf si la bouée est trop grosse ;-)




--
Adresse mail :
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
Jacques93
Le #17464241
John-Pet a écrit :
merci pour ton exemple
j'étais en train de simplifier le homer et cie

et voilà que ça me tombe du ciel



Euh, étant un drôle de paroissien, je ne sais pas si le ciel ...

ça me va très bien




mais merci du retour :-)

--

Cordialement,

Jacques.
Jacques93
Le #17464691
Bonjour bahn po,
bahn po a écrit :
John-Pet a exprimé avec précision :
Hello

Dans une picturebox contenant comme picture un carte, j'ai mis une
autre image (par dessus la première) mais très petite representant une
bouée
Je voudrais pouvoir déplacer cette bouée avec la souris
Quelqu'un a t'il une piste pour y arriver

Merci

JP



Option Explicit

Private Type POINTAPI
X As Long
Y As Long
End Type
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI)
As Long


Private Sub Picture2_MouseMove(Button As Integer, Shift As Integer, X As
Single, Y As Single)
Dim p As POINTAPI


If Button = 1 Then
Call GetCursorPos(p)
Picture2.Left = p.X * 15 - Form1.Left - 500
Picture2.Top = p.Y * 15 - Form1.Top - 500
Picture2.Refresh
End If

end sub


Ci-dessus un exemple d'une picture2 qui se déplace quand tu click gauche
dessus. Désolé pour la formule "p.X * 15 - Form1.Left - 500", j'ai pas
trouvé mieux, mais ça marche :)




Le 15, à ma connaissance, est lié aux différentes unités utilisées, le
pixel pour une grande partie (si ce n'est la majorité) des Api's, le
twips par défaut pour VB (y' toujours pas d'échantillon de twips à
Sèvres !!!). Et un Pixel vaut 15 twips( ou Screen.TwipsPerPixel[X-Y]).
Jean-Marc ou François ou Patrice, ou ? savent peut être pourquoi, moi
pas, mais c'est comme ça depuis un moment. Il me semble toutefois qu'il
y avait l'idée, derrière cette unité, d'être indépendant du périphérique
(écran , imprimante, etc...) qui n'ont pas la même résolution physique.

Pour le 500, je dirai que c'est lié au type de fenêtre, par exemple
sizeable ou non, Fixed Dialog ou non, les bordures, et la barre de
titres n'ont pas la même dimension (voir avec GetSystemMetrics)

Mais 500, n'est peut être pas le meilleur chiffre, il vaut mieux un
multiple de 15, par exemple 495 ou 510, mais c'est un avis personnel.

--


Cordialement,

Jacques.
Publicité
Poster une réponse
Anonyme