ボックス内で画像をランダムに動かす方法
VBでは、タイマーコントロールとピクチャボックスコントロールを使用して、ボックス内の画像をランダムに移動させることができます。
最初に、フォーム上にPictureBoxコントロールを配置し、サイズや位置を設定しましょう。そして、BorderStyleをFixedSingleに設定して、画像を表示する枠をフォーム上に作成します。
次に、フォーム上にTimerコントロールを配置し、そのIntervalプロパティを100または適切な数値に設定して、画像の描画速度を制御します。
次に、画像のランダムな動きを実現するための以下のコードを書いていきます。
Dim rnd As New Random() ' 创建随机数生成器
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' 设置图像的初始位置
PictureBox1.Location = New Point(50, 50)
' 启动定时器
Timer1.Start()
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
' 计算图像的下一个位置
Dim newX As Integer = PictureBox1.Location.X + rnd.Next(-5, 6) ' X轴上的随机偏移量
Dim newY As Integer = PictureBox1.Location.Y + rnd.Next(-5, 6) ' Y轴上的随机偏移量
' 限制图像在框内运动
If newX < 0 Then
newX = 0
ElseIf newX + PictureBox1.Width > Me.ClientSize.Width Then
newX = Me.ClientSize.Width - PictureBox1.Width
End If
If newY < 0 Then
newY = 0
ElseIf newY + PictureBox1.Height > Me.ClientSize.Height Then
newY = Me.ClientSize.Height - PictureBox1.Height
End If
' 更新图像的位置
PictureBox1.Location = New Point(newX, newY)
End Sub
上記のコード内では、最初に乱数を発生させるためのRandomオブジェクトrndを作成しています。
フォームロードイベント時に、画像の初期位置を設定し、タイマーTimer1が起動します。
Timer1のTickイベント内で、画像の次の位置をランダムなオフセット量を生成することで計算し、枠の中で移動するように制限する。最後に画像の座標を更新する。
なお,例のコードでは画像をボックス内でランダムに動かすといった基本的な機能しか実現していませんが、実際のニーズに応じてカスタマイズや拡張をすることができます。