C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 68 を表示中)
■39662 / )  Re[13]: PictureBoxを左右に往復するループ
□投稿者/ みきぬ (599回)-(2009/08/12(Wed) 09:45:57)
2009/08/12(Wed) 09:51:24 編集(投稿者)
見える化

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

        PictureBox1.Top = rn.Next(400) 'Y座標を0〜399で発生
        'idouryou = rn.Next(10) '移動量を0〜9で発生★

        If PictureBox1.Left > Me.Width - PictureBox1.Width Or PictureBox1.Left < 0 Then
            idouryou *= -1 '上記の条件のときの移動方向を反転

        End If

        ' 見える化
        Console.WriteLine(String.Format("PictureBox1.Left = {0:000}  idouryou = {1}", PictureBox1.Left, idouryou))

        PictureBox1.Left += idouryou

    End Sub

----- 上記を実行した結果(ただし Form1.Width = 300, PictureBox1.Width = 100)
PictureBox1.Left = 012  idouryou = 20
PictureBox1.Left = 032  idouryou = 20
PictureBox1.Left = 052  idouryou = 20
PictureBox1.Left = 072  idouryou = 20
PictureBox1.Left = 092  idouryou = 20
PictureBox1.Left = 112  idouryou = 20
PictureBox1.Left = 132  idouryou = 20
PictureBox1.Left = 152  idouryou = 20
PictureBox1.Left = 172  idouryou = 20
PictureBox1.Left = 192  idouryou = 20
PictureBox1.Left = 212  idouryou = -20
PictureBox1.Left = 192  idouryou = -20
PictureBox1.Left = 172  idouryou = -20
PictureBox1.Left = 152  idouryou = -20
PictureBox1.Left = 132  idouryou = -20
PictureBox1.Left = 112  idouryou = -20
PictureBox1.Left = 092  idouryou = -20
PictureBox1.Left = 072  idouryou = -20
PictureBox1.Left = 052  idouryou = -20
PictureBox1.Left = 032  idouryou = -20
PictureBox1.Left = 012  idouryou = -20
PictureBox1.Left = -008  idouryou = 20
PictureBox1.Left = 012  idouryou = 20
PictureBox1.Left = 032  idouryou = 20
PictureBox1.Left = 052  idouryou = 20
...

----- ★のコメントを外した場合
PictureBox1.Left = 012  idouryou = 5
PictureBox1.Left = 017  idouryou = 8
PictureBox1.Left = 025  idouryou = 5
PictureBox1.Left = 030  idouryou = 4
PictureBox1.Left = 034  idouryou = 7
(※中略)
PictureBox1.Left = 178  idouryou = 5
PictureBox1.Left = 183  idouryou = 6
PictureBox1.Left = 189  idouryou = 3
PictureBox1.Left = 192  idouryou = 3
PictureBox1.Left = 195  idouryou = 1
PictureBox1.Left = 196  idouryou = 1
PictureBox1.Left = 197  idouryou = 5
PictureBox1.Left = 202  idouryou = -6
PictureBox1.Left = 196  idouryou = 2
PictureBox1.Left = 198  idouryou = 7
PictureBox1.Left = 205  idouryou = -4
PictureBox1.Left = 201  idouryou = -9
PictureBox1.Left = 192  idouryou = 6
PictureBox1.Left = 198  idouryou = 4
PictureBox1.Left = 202  idouryou = -1
PictureBox1.Left = 201  idouryou = -6
PictureBox1.Left = 195  idouryou = 9
PictureBox1.Left = 204  idouryou = -8
PictureBox1.Left = 196  idouryou = 1
PictureBox1.Left = 197  idouryou = 8
PictureBox1.Left = 205  idouryou = -5
...

さて、うまく動いていたものが、なぜだめになったかわかるかな?

※出力させる位置を直した。

返信 編集キー/


管理者用

- Child Tree -