Движение объектов - VB
Формулировка задачи:
На сессию надо сдать программу, которая двигает Image1 по форме направо, вниз и налево.
Так вот. У меня получился такой код.
Дело в том, что я не могу двинуть объект влево, не получается. Остальные две переменные работают как надо.
Листинг программы
- Option Explicit
- Dim x As Double 'переменная отвечающая за движение направо
- Dim y As Double 'переменная отвечающая за движение вниз
- Dim z As Double 'переменная отвечающая за движение налево
- Private Sub Command1_Click()
- x = Image1.Left
- Do
- x = x + 0.1
- Image1.Left = x
- Loop While x <= 15000
- Image1.Left = 15000
- Image1.Height = 6000
- y = Image1.Top
- Do
- y = y + 0.01
- Image1.Top = y
- Loop While y <= 6000
- Image1.Top = 6000
- Image1.Height = 7000
- End Sub
- Private Sub Form_Load()
- Image1.Left = 0
- Image1.Top = 0
- End Sub
Решение задачи: «Движение объектов»
textual
Листинг программы
- Option Explicit
- Dim dx As Double 'приращение координаты по x
- Dim dy As Double 'приращение координаты по y
- Dim mode As Long 'определяет направление
- Private Sub Command1_Click()
- Form_Load
- mode = 0
- Timer1.Enabled = True
- End Sub
- Private Sub Form_Load()
- Image1.Left = 0
- Image1.Top = 0
- dx = Screen.TwipsPerPixelX * 2 'шаг = 2 пикселя
- dy = Screen.TwipsPerPixelY * 2
- Timer1.Interval = 20
- Timer1.Enabled = False
- End Sub
- Private Sub Timer1_Timer()
- With Image1
- Select Case mode
- Case 0 'движение вниз
- .Left = .Left + dx
- If .Left >= Me.Width - .Width - 120 Then mode = 1
- Case 1 'движение вниз
- .Top = .Top + dy
- If .Top >= Me.Height - .Height - 500 Then mode = 2
- Case 2 'движение влево
- .Left = .Left - dx
- If .Left <= 0 Then Timer1.Enabled = False
- End Select
- End With
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д