0

画面上を 20 個のボールが移動できるようにする必要があります。コードを長く入力する必要がないように、ループの使用方法を知りたいです。現在、私が持っているコードは

for (int i = 0; i < ballSpeedXAxis.Length; i++)
        {
            ballSpeedXAxis[i] = 1;
        }

for (int i = 0; i < ballSpeedYAxis.Length; i++)
        {
            ballSpeedYAxis[i] = 1;
        } 

private void OnUpdate(object sender, object e)
{
Canvas.SetLeft(this.ball1, this.ballSpeedXAxis[1] + Canvas.GetLeft(this.ball1));
Canvas.SetTop(this.ball1, this.ballSpeedYAxis[1] + Canvas.GetTop(this.ball1));
Canvas.SetLeft(this.ball2, this.ballSpeedXAxis[2] + Canvas.GetLeft(this.ball2));
Canvas.SetTop(this.ball2, this.ballSpeedXAxis[2] + Canvas.GetTop(this.ball2));
...
Canvas.SetLeft(this.ball20, this.ballSpeedXAxis[20] + Canvas.GetLeft(this.ball20));
Canvas.SetTop(this.ball20, this.ballSpeedXAxis[20] + Canvas.GetTop(this.ball20));
}

ball1, ball2 ... ball3 は画像名です。

4

1 に答える 1

4

さまざまな方法があります..最も明白なのは、これの代わりです:

Image ball1;
Image ball2;
Image ball3;
// .. etc ...

それらも配列に入れます:

Image[] balls = new Image[20];

..あなたの速度と同じです。次に、更新方法を次のように変更できます。

private void OnUpdate(object sender, object e) {
    for (int i = 0; i < balls.Length; i++) {
        Canvas.SetLeft(balls[i], ballSpeedXAxis[i] + Canvas.GetLeft(balls[i]));
        Canvas.SetTop(balls[i], ballSpeedYAxis[i] + Canvas.GetTop(balls[i]));
    }
}

他には、既に作成された画像を .. に入れることも含まれList<Image>ますが、それは少し悪いです。

于 2013-07-25T03:22:06.013 に答える