Besoin d'aide pour colision d'image

Résolu
cs_MeSod Messages postés 89 Date d'inscription dimanche 21 septembre 2008 Statut Membre Dernière intervention 26 avril 2016 - 11 janv. 2009 à 20:59
cs_MeSod Messages postés 89 Date d'inscription dimanche 21 septembre 2008 Statut Membre Dernière intervention 26 avril 2016 - 13 janv. 2009 à 07:29
Bonjours j'ai un probleme je cherche desesperement un code pour faire que quand deux image se touche l'une s'arrette de bouger pouver vous m'aider car sa fait un moment que je cherche ce code mais je n'en trouve aucun qui convient je suis en train de faire un jeu de combat
Merci de votre aide
Cordialement MeSod

15 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
12 janv. 2009 à 11:15
je t'ai filé un algorithme...
a saisir l'idée, a recoder.

mais vu que tes rectangles sont droits, la réponse est simplissime... tester si deux rectangles se chevauchent...

Private Function DoesCollide(ByRef voCtl1 As Control, ByRef voCtl2 As Control) As Boolean
Dim oLeft As Control
Dim oRight As Control
If Not Nothing Is voCtl1 And Not Nothing Is voCtl2 Then
If Shape1.Left <= voCtl1 Then
Set oLeft = voCtl1
Set oRight = voCtl2
Else
Set oLeft = voCtl2
Set oRight = voCtl1
End If
If oRight.Left < oLeft.Left + oLeft.Width Then
If oRight.Top < oLeft.Top + oLeft.Height Then
If oRight.Top > oLeft.Top - oRight.Height Then
DoesCollide = True
End If
End If
End If
End If
End Function
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
12 janv. 2009 à 23:11
tu as juste a ajouter la fonction a ton code et faire :

If DoesCollide(Image1, Image2) Then
MsgBox "Collision"
End If


---------
dessine deux rectangles sur une feuille. si collision il y a, y'a pas 36 solutions.
ici, on les prend dans un ordre précis, le plus à Gauche=>1
l'autre, ben c'est le 2.

ensuite, on affine les tests, pour tester la collision

si le bord gauche de l'objet 2 a une abscisse plus petite que le bord droit de l'objet 1, etc.
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
12 janv. 2009 à 08:28
des images qui bougent ?

va falloir être plus précis et utiliser davantage de termes techniques...

DirectX ?
Images transparentes ?
...
0
cs_MeSod Messages postés 89 Date d'inscription dimanche 21 septembre 2008 Statut Membre Dernière intervention 26 avril 2016
12 janv. 2009 à 10:27
Bonjours
alors j'ai des image au format gif que j'ai mis avec le control "image" j'ai mis le code de deplacement donc mon image bouge niquel vers la gauche et la droite des qu'on appuye sur les fleche du clavier (ja pas besoin des direction haut et bas)
sans directX
donc j'ai :
Image1 et image2
et j'aimerai que des que l'image1 touche l'image2, l'image1 s'arrette
Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
12 janv. 2009 à 10:33
le contenu non transparent des images, je suppose...
0
cs_MeSod Messages postés 89 Date d'inscription dimanche 21 septembre 2008 Statut Membre Dernière intervention 26 avril 2016
12 janv. 2009 à 10:37
jai les image donc mon petit bonhomme et je les ouvert avec un programme (paint.net), j'ai suprimmer le blanc autour de l'image et j'ai sauvegarder en .gif donc si il y a de la transparence ^^'
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
12 janv. 2009 à 10:41
ca ne réponds pas a ma question. Je demande juste si tu souhaites bien tester la colision exacte, au pixel non transparent pret...

1ere étape, regarder si les deux Bounding-box se chevauchent (les objets image, quoi)


quel taille font tes images ?
0
cs_MeSod Messages postés 89 Date d'inscription dimanche 21 septembre 2008 Statut Membre Dernière intervention 26 avril 2016
12 janv. 2009 à 10:49
les deux image que j'ai sont deux rectangle (4 face donc) et je ve que des que l'une des face de l'image1 touche les face de l'image de l'image 1 s'arrette  je n'ai pas besoin de le faire au pixel visible pret je veux juste un code simple etant donner que je ne suis pas un pro ..
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
12 janv. 2009 à 10:58
tes rectangles peuvent ils tourner sur eux même ? ou sont ils "droits" => parallèle aux bords de l'ecran ?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
12 janv. 2009 à 10:59
0
cs_MeSod Messages postés 89 Date d'inscription dimanche 21 septembre 2008 Statut Membre Dernière intervention 26 avril 2016
12 janv. 2009 à 10:59
non il sont droit
0
cs_MeSod Messages postés 89 Date d'inscription dimanche 21 septembre 2008 Statut Membre Dernière intervention 26 avril 2016
12 janv. 2009 à 11:01
Le lien que tu m'a passer c'est du c++ j'aimerai en vb6.0 =)
0
cs_MeSod Messages postés 89 Date d'inscription dimanche 21 septembre 2008 Statut Membre Dernière intervention 26 avril 2016
12 janv. 2009 à 11:17
ok merci je testerai plus tard merci d'avoir consacrer ton precieux temps a m'aider je te dirai si sa marche ..
0
cs_MeSod Messages postés 89 Date d'inscription dimanche 21 septembre 2008 Statut Membre Dernière intervention 26 avril 2016
12 janv. 2009 à 19:28
Ro sa m'ennerve j'arrive pas a le faire fonctionner le code .. je sais niveau colision je suis un noob .. tu peux m'expliquer steplait ..?
Merci ..
0
cs_MeSod Messages postés 89 Date d'inscription dimanche 21 septembre 2008 Statut Membre Dernière intervention 26 avril 2016
13 janv. 2009 à 07:29
Ok merci c'est bon sa fonctionne niquel merci de ton aide    
merci =D
0
Rejoignez-nous