To co děláte je testování bodu na bod, ale jak známo, PictureBoxy jsou obdélníkové tvary a je tedy třeba trochu víc detekování kolizí. Naštěstí pro tak jednoduché tvary jako obdélníky si můžete pomoct vestavěnými metodami .NET frameworku. Nejdříve musíte získat pozici a velikost obou PictureBoxů, což snadno zjistíte z PictureBox.ClientRectangle vlastnosti. Tyto koordináty jsou relativní k levému hornímu rohu klientské oblasti formuláře. Pak pomocí Rectangle.IntersectsWith otestujete kolizi a pokud se podmínka splní, můžete provést cokoliv dalšího.
Dim rect1 = PictureBox1.ClientRectangle
Dim rect2 = PictureBox2.ClientRectangle
If rect1.IntersectsWith(rect2) Then
MessageBox.Show("Kolize!")
End if
http://msdn.microsoft.com/en-us/library/... Control.ClientRectangle http://msdn.microsoft.com/en-us/library/... Rectangle.IntersectsWith
|