Приложение имитировать движение КАК? - 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.6 из 5
Похожие ответы