vb bounds wie?

05/09/2011 20:59 False#1
hi,

der ersteller des videos hat geschriben er hat es per bounds gemacht das wenn er die quallen berührt das eine msgbox kommt aber wie funktioniert das?

05/09/2011 21:43 Kraizy​#2
Hi,
so wie es in dem Video aussieht, basiert alles auf PictureBoxen, was nicht besonders gut für Spiele ist, besser ist GDI+ oder XNA.
Naja, wie auch immer, prüfen ob es eine Berührung gegeben hat kannst du z.B. so abfangen:
Code:
If PictureBox1.Bounds.IntersectsWith(PictureBox2.Bounds) Then
            MsgBox("bla")
        End If
05/09/2011 21:48 False#3
oh... danke
habe es so gehabt Xd
Code:
If PictureBox1.Bounds.IntersectsWith(PictureBox2) Then
            MsgBox("bla")
        End If

noch eine frage wie lasse ich mehrere picturebox in ein also das ich nicht tausendmal
if.... schreiben muss sondern nur

Code:
If PictureBox1.Bounds.IntersectsWith(allepicutreboxes.bounds) Then
            MsgBox("bla")
        End If
05/10/2011 14:17 Kraizy​#4
Du läufst mit einer Schleife alle Controls deiner Form durch, prüfst ob es eine PictureBox ist und ob es nicht den Namen der PictureBox hat, die bewegt werden soll. Hier mal ein kleines Beispiel, PictureBox1 ist die, die ich bewege:
PHP Code:
For Each picBox As Control In Me.Controls //alle Controls der Form durchlaufen
     
If TypeOf picBox Is PictureBox Then //wenn das Control eine PictureBox ist
          
If Not picBox.Name "PictureBox1" Then //wenn Name nicht PictureBox1 ist
               
If PictureBox1.Bounds.IntersectsWith(picBox.BoundsThen //wenn PictureBox1 eine andere PictureBox berührt
                    //was ausgelöst werden soll
          
End If
     
End If
Next 
Müsste eigentlich noch einen besseren/kürzeren Code geben, aber keine Lust danach zu suchen/denken..eventuell mit dem "sender" (der bei den Methode immer deklariert wird [ByVal sender As System.Object]) arbeiten.