| ■39648 / ) |
Re[9]: PictureBoxを左右に往復するループ |
□投稿者/ へっぽこ (18回)-(2009/08/12(Wed) 06:25:31)
|
■No39587 (biac さん) に返信
>> やらせたいことは、こういうことですか?
>
> 1. 乱数で決めた位置に画像を表示させる。
> 2. 一定の時間間隔で、画像を移動させる。ただし…
> 2-1. 移動させる距離は乱数で決定する。
> 2-2. 移動させる方向は、最初は右向き。ただし、移動させる直前の時点で…
> 2-2a) すでに画像がウィンドウの右端から外へ完全に出ていた場合は、左向きに変える。
> 2-2b) すでに画像がウィンドウの左端から外へ少しでも出ていた場合は、右向きに変える。
おっしゃるとおりです。
下記のコードで思った動きは実現できましたが、
★…★の部分を挿入すると
右端で上下の動きを繰り返し、左端に進もうとしません。
移動量がランダムに変化することとの関係がいまいち理解できません。(-_-;)
→★idouryou = rn.Next(10) '移動量を0〜9で発生★
< >
Public Class Form1
Dim idouryou As Integer = 20 '移動量
Dim rn As Random = New Random()
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
PictureBox1.Left += idouryou
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Timer1.Enabled = Not Timer1.Enabled
End Sub
End Class
|
|