gpt4 book ai didi

图片框之间的 VB.NET 冲突

转载 作者:行者123 更新时间:2023-12-01 14:38:36 26 4
gpt4 key购买 nike

我正在尝试制作一个简单的游戏,我需要知道 picturebox1(我的角色)是否与其他 picturebox(墙壁)发生碰撞。

我已经弄清楚如何做到这一点,但它只适用于我的角色和另外 1 个图片框,例如:

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

但是 bool 碰撞总是为真,因为 picturebox1(字符)总是与自身相交。

所以我将图片框更改为面板,代码如下所示:

For Each PictureBox In Me.Controls
If Panel1.Bounds.IntersectsWith(PictureBox.Bounds) Then
collision = True
Else : collision = False
End If
Next

但它只适用于 1 个图片框,不适用于表单中的所有图片框。我不明白为什么...如果有人可能知道如何在每个函数中添加异常,这样我就可以保留我的 picturebox1

可能是这样的

For each picturebox(except(picturebox1)) in me.controls

因为我已经搜索过了,但没有找到任何东西......

非常感谢任何帮助:)谢谢!

最佳答案

一种方法:

For Each PictureBox In Me.Controls
If PictureBox IsNot PictureBox1 AndAlso PictureBox1.Bounds.IntersectsWith(PictureBox.Bounds) Then
collision = True
Exit For 'Exit when at least one collision found
Else : collision = False
End If
Next

如果 PictureBox 确实是 PictureBox1,这会将碰撞设置为 False。但请注意,您正在覆盖每个循环中的碰撞状态,这不是您真正想要的。当发现一次碰撞时,您应该退出 for 循环(请参阅我的代码)。您也可以像这样更改您的代码:

collision = False
For Each PictureBox In Me.Controls
If PictureBox IsNot PictureBox1 AndAlso PictureBox1.Bounds.IntersectsWith(PictureBox.Bounds) Then
collision = True
Exit For
End If
Next

关于图片框之间的 VB.NET 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15311255/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com