检查图片框是否触摸屏幕上的任何对象 C#
本文关键字:任何 对象 屏幕 触摸屏 是否 触摸 检查 | 更新日期: 2023-09-27 18:30:51
我在 C# 上编码的游戏有问题。我尝试在论坛上搜索此问题,但没有一个适用于这种情况:/
我正在尝试检查图片框是否点击屏幕中的任何其他图片框。
我已经尝试过这个,但是当我添加更多对象时,这可能太慢了。
if (!square.Bounds.IntersectsWith(grass.Bounds) && !square.Bounds.IntersectsWith(grMiddle.Bounds) && !square.Bounds.IntersectsWith(grRight.Bounds) && !square.Bounds.IntersectsWith(middle.Bounds) && !square.Bounds.IntersectsWith(sideRight.Bounds) && !square.Bounds.IntersectsWith(topPanel.Bounds))
这种方法不起作用,因为玩家移动增加了 100 倍,我立即死亡,不知何故......
foreach (PictureBox pic in this.Controls.OfType<PictureBox>())
{
if (pic != square) // exclude square PictureBox from the test
{
if (!square.Bounds.IntersectsWith(pic.Bounds))
{
if (!square.Bounds.IntersectsWith(rightGoal.Bounds))
{
if (Right) { square.Left += 5; }
if (Left) { square.Left -= 5; }
if (Up) { square.Top -= 5; }
if (Down) { square.Top += 5; }
}
else
{
pally.points++;
rightPoints.Text = pally.points.ToString();
square.Location = new Point(690, 533);
}
}
else
{
square.Location = new Point(690, 533);
}
}
}
我没有想法,一些帮助会很好:)
if (Right) { square.Left += 5; }
if (Left) { square.Left -= 5; }
if (Up) { square.Top -= 5; }
if (Down) { square.Top += 5; }
这些是在测试键盘输入还是什么?您正在使用此代码移动正方形。您正在为表单上的每个图片框执行此操作。这就是为什么你的方块移动得太远。将您的位置更新代码与交叉点代码分开应该可以解决您的问题。