panicq
Messages postés66Date d'inscriptionmardi 14 novembre 2000StatutMembreDernière intervention18 janvier 2010
-
7 oct. 2007 à 11:40
VBGenesis
Messages postés292Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 février 2009
-
7 oct. 2007 à 13:05
Bonjour à tous,
J'aurais bien aimé savoir comment faire une coliision entre deux picture box; je m'explique: l'utilisateur peut déplacer un picture box à l'aide du clavier et j'aurais aimé savoir commetn faire pour que quand il rentre en collision avec un autre picture boc un message box affiche perdu! En quelque sorte je voudrais faire les base d'un jeu!
VBGenesis
Messages postés292Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 février 2009 7 oct. 2007 à 12:18
Salut
Il faut que tu compares les positions des picturebox en x et en y pout en déduire si elles sont superposées:
if pic1.top < pic2.top + pic2.height then 'Premier test: l'image n'est pas en dessous
if pic1.top + pic1.height > pic2.top then 'Deuxième test: l'image n'est pas au dessus
if pic1.left < pic2.left + pic2.width then'Troisème test: l'image n'est pas à droite
if pic1.left + pic1.width > pic2.left then 'Quatrième test: l'image n'est pas à gauche
'Si arrivé jusqu'ici alors il y a collision
MsgBox "Collision!"
endif
endif
endif
endif
Voilà il y a surement des moyens plus optimisés mais j'ai dissocié pour que tu comprenne. Si ce n'est pas le cas dis le moi!
panicq
Messages postés66Date d'inscriptionmardi 14 novembre 2000StatutMembreDernière intervention18 janvier 2010 7 oct. 2007 à 12:37
Merci mais le probleme c'est que ca marche pas car moi j'ai sur le picturebox1 une fonction qui permet de le déplacer avec les fleches directionneles:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
With Picture1
Select Case KeyCode
Case vbKeyUp: .Top = .Top + 100
Case vbKeyDown: .Top = .Top - 100
Case vbKeyLeft: .Left = .Left + 100
Case vbKeyRight: .Left = .Left - 100
End Select
End With
End Sub
Private Sub Form_Load()
Me.KeyPreview = True
End Sub
Voila alors si vous pouvez m'aide a trouver la collision qui marche avec ce code ca serait cooooool!!
Merci à tous,
VBGenesis
Messages postés292Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 février 2009 7 oct. 2007 à 12:40
Qu'est-ce qui ne marche pas? Tu met le code que je t'ai donné à la fin de ton KeyDown pour qu'il soit executé à chaque pression de touche et le tour est joué!
Vous n’avez pas trouvé la réponse que vous recherchez ?