如何让一个名字指向多个图片框

本文关键字:一个 | 更新日期: 2023-09-27 18:17:28

我正在制作一款玩家四处移动并被跟踪的游戏。但是有很多东西跟着用户,我想知道是否有一种方法可以用一个名字来指代所有这些东西。我让这些东西像这样跟随用户:

if (user.Top < thing1.Top)
    thing1.Top += 5;
else
    thing1.Top -= 5;
if (user.Left < thing1.Left)
    thing1.Left += 5;
else
    thing1.Left -= 5;
if (user.Top < thing2.Top)
    thing2.Top += 5;
else
    thing2.Top -= 5;
if (user.Left < thing2.Left)
    thing2.Left += 5;
else
    thing2.Left -= 5;

无论我包含多少"东西",该代码都将重复。每个东西都是一个单独的pictureBox。我想知道是否可以用一个名字来指代我所有的"东西"。例如,如果我有50个,thing.Top += 10会移动它们。这可能吗?

如何让一个名字指向多个图片框

不确定"thing"代表什么,但您可以将它们分组到一个集合中,并在创建它们时向其添加新的Thing实例:

var things = new List<Thing> { thing1, thing2, thing3 };

然后遍历集合:

foreach (var thing in things)
{
    thing.Left += (user.Left < thing.Left) ? 5 : -5;
    ...
}

如果这是WinForms,那么无论如何它对于游戏来说都将是非常缓慢的,但我想你已经知道如果你一直在玩它。

相关文章: