我有一个构成2D网格的像素数组,我希望随着时间的推移左右移动这些像素......但是我想出的循环效率相当低,并且不允许进行大量扩展。改变运动。关于如何改进我已经拥有的任何想法将不胜感激。
while (true)
{
for (float i = 0; i < x; i++)
{
foreach (Pixel p in pixels)
{
p.move(10, 0);
}
}
for (float i = 0; i < x * 2; i++)
{
foreach (Pixel p in pixels)
{
p.move(-10, 0);
}
}
for (float i = 0; i < x; i++)
{
foreach (Pixel p in pixels)
{
p.move(10, 0);
}
}
}
编辑:抱歉在中间循环需要的代码中出现错误 - 第一个for循环将所有像素向右移动,第二个将它们移回原点然后向左移动,第三个循环然后移动它们回到原点。
答案 0 :(得分:1)
您可以在实际使用像素的代码中使用偏移量变量。然后通过改变偏移量来完成移动像素,这是一行代码。
答案 1 :(得分:0)
你不能只使用一个循环并使用int吗?三个循环似乎是多余的
使用从0到x * 2的一个循环,并在x值
上执行选择移动像
这样的东西for(int i = 0; i < x * 2; i++)
{
foreach(Pixel p in pixels)
{
if (i < x)
{
p.move(0.1, 0);
p.move(10, 0);
p.move(10, 0);
}
else
p.move(10,0)
}
}