我正在尝试制作一个简单的游戏,我需要知道picturebox1(我的角色)是否与其他pictureboxes(墙壁)发生碰撞。
我已经找出了如何做到这一点,但它只对我的角色和另一个picturebox有效,例如:
If picturebox1.bounds.intersectWith(picturebox2.bounds) then
collision = true
end if
我尝试做类似这样的事情:
For Each PictureBox In Me.Controls
If PictureBox1.Bounds.IntersectsWith(PictureBox.Bounds) Then
collision = True
Else : collision = False
End If
Next
但是,如果使用picturebox1(角色)与自身相交,则布尔碰撞始终为真。
所以我将picturebox更改为面板,并且代码如下:
For Each PictureBox In Me.Controls
If Panel1.Bounds.IntersectsWith(PictureBox.Bounds) Then
collision = True
Else : collision = False
End If
Next
但它只适用于一个单独的图片框,而不是表单中的所有图片框。我不明白为什么……如果有人知道如何添加一个异常在循环函数中,以便我可以保留我的picturebox1,就请告诉我。可能像这样:
For each picturebox(except(picturebox1)) in me.controls
因为我已经搜索了,但是没有找到任何东西...
非常感谢您的帮助 :) 谢谢!