C#如何制作单独的面板使用计时器向不同方向移动

时间:2016-05-22 00:32:30

标签: c#

好的,所以我正在研究一个游戏引擎,我希望能够在勾选复选框时让不同的面板(游戏引擎的对象)移动

但是,我只是不知道该怎么做。

    private void Timer_Tick(object sender, EventArgs e)
    {
        foreach (KeyValuePair<string, Panel> kvp in objects)
        {
            if (running)
            {
                Point loc = kvp.Value.Location;
                loc.X = loc.X + 1;
                kvp.Value.Location = loc;
            }
        }
    }

因此,对于此代码,所有对象都向左移动,但是我说我只想移动一个对象而其他对象保持静止,我该怎么做?

我有一个您输入的文本框来查找对象,但您必须单击按钮才能找到它。

这只是引擎中一个非常令人困惑的部分,我向自己承诺,我不会放弃它。

1 个答案:

答案 0 :(得分:0)

试试这个。
首先为您的对象提供合理的名称,用户可以从UI中看到这些名称作为面板名称,然后根据这些名称识别它们。 所以panel1的文本应该是“panel1”。

虽然我没有尝试过,但这段代码应该可以使用。

private void Timer_Tick(object sender, EventArgs e)
{

    foreach (KeyValuePair<string, Panel> kvp in objects)
    {
        if (running && textbox1.Text.Trim() == kvp.Name.Trim()) // you could also do null check if you like
        {
            Point loc = kvp.Value.Location;
            loc.X = loc.X + 1;
            kvp.Value.Location = loc;
        }
    }
}

我不明白你的意思是不同的方向,如果你想让它们以不同的随机方向移动那么你会产生1到2之间的随机数,那么如果数字为1则你做loc.X +1但是如果它是2 loc.X -1。如果您希望用户选择方向,则可以为其创建组合框。