Приложение имитировать движение КАК? - VB
Формулировка задачи:
Как??? по Visual BasicПриложение должно имитировать движение шарика "со шлейфом" внутри объекта класса PictureBox . Шарик движется за счёт изменения его координат и отражается от сторон PictureBox под углом 45°. Приложение должно иметь режим когда внутри объекта Picture1 появлялся бы прямоугольник представляющий собой дополнительное препятствие для движущегося шарика
Решение задачи: «Приложение имитировать движение КАК?»
textual
Листинг программы
Option Explicit Private Const SIZE = 15 Private Const ITER = 100 Dim WithEvents tmr As Timer Dim loX As Long, loY As Long Dim lX As Long, lY As Long, lDx As Long, lDy As Long Private Sub Form_Load() ScaleMode = vbPixels: DrawWidth = SIZE: BackColor = 0 Set tmr = Controls.Add("VB.Timer", "tmr"): tmr.Interval = 32 lX = 180: lY = 100: lDx = 1: lDy = 1: loX = 50: loY = 50 Width = (Width - ScaleWidth * Screen.TwipsPerPixelX) + 200 * Screen.TwipsPerPixelX Height = (Height - ScaleHeight * Screen.TwipsPerPixelY) + 200 * Screen.TwipsPerPixelY End Sub Private Sub DrawBall(ByVal lX As Long, ByVal lY As Long, _ ByRef lDx As Long, ByRef lDy As Long, _ ByVal lIter As Long) If lX = ScaleWidth - SIZE Or lX = SIZE Or _ (lX = loX - SIZE And lY > loY - SIZE And lY < loY + 100 + SIZE) Or _ (lX = loX + 100 + SIZE And lY > loY - SIZE And lY < loY + 100 + SIZE) Then _ lIter = -(lIter <> ITER) * lIter: lDx = -lDx _ Else: If lY = ScaleHeight - SIZE Or lY = SIZE Or _ (lY = loY - SIZE And lX > loX - SIZE And lX < loX + 100 + SIZE) Or _ (lY = loY + 100 + SIZE And lX > loX - SIZE And lX < loX + 100 + SIZE) Then _ lIter = -(lIter <> ITER) * lIter: lDy = -lDy _ Else: PSet (lX, lY), lIter * 2 If lIter Then DrawBall lX - lDx, lY - lDy, (lDx), (lDy), lIter - 1 End Sub Private Sub tmr_Timer() DrawBall lX, lY, lDx, lDy, ITER lX = lX + lDx: lY = lY + lDy Line (loX, loY)-Step(100, 100), vbGreen, BF End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д