如何使一个名称指向多个图片框?

时间:2014-08-12 02:15:24

标签: c# picturebox

我正在制作一个玩家四处移动并被跟踪的游戏。但随着用户跟随很多事情,我想知道是否有办法用一个名称来引用所有这些东西。我正在按照这样的方式跟踪用户:

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;

该代码将重复许多&#34;事情&#34;我包括。每件事都是一个单独的pictureBox。我想知道是否可以参考我所有的东西&#34;有一个名字。例如,如果我有50个thing.Top += 10将它们全部移动。这可能吗?

1 个答案:

答案 0 :(得分:1)

不确定&#34;是什么&#34;表示,但您可以将它们分组到一个集合中,只需在创建它时添加新的Thing实例:

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

然后遍历集合:

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

如果这是WinForms,无论怎样,游戏都会变得非常慢,但我想你已经知道如果你一直在玩它。