Программирование
Веб программирование

Анимация в VB

 
 

Одним из главных объектов анимации, и вообще всего программирования, является Timer, да ты не ослышался это таймер. Вскоре ты поймешь почему. Входим в VB, нажимаем Standart EXE. На форму кидаем 1 кнопку со свойством Caption равным "Пуск", 1 Shape(фигура) со свойством Shape равным 3 - Circle(Круг), и свойством BackStyle равным 1 - Opaque(для закраски фигуры), и 3 Timera со свойством Interval равным 1(это время через которое Timer будет обновляться (мл)), и свойством Enabled равным False(ложь), чтобы выключить Timer, а чтоб включить таймер тебе надо в свойстве Enabled поставить True(И это свойство есть у всех объектов, даже у текстового поля). У тебя должна получиться такая штука:

Теперь код:

Private Sub Command1_Click() ' При нажатии на кнопку включается Timer1 и Timer3
Timer1.Enabled = True
Timer3.Enabled = True
End Sub

Private Sub Timer1_Timer()
Shape1.Left = Shape1.Left + 25 ' Каждую мл Shape1 будет сдвигаться вправо на 25 
End Sub

Private Sub Timer2_Timer()
Shape1.Left = Shape1.Left - 25 ' Каждую мл Shape1 будет сдвигаться влево на 25 
End Sub

Private Sub Timer3_Timer()
If Shape1.Left <= -400 Then 'Если Shape1.Left <= -400(отскок от левой стенке) то
Timer1.Enabled = True ' Timer1 включается 
Timer2.Enabled = False ' Timer2 выключается 
End If
If Shape1.Left >= 4000 Then 'Если Shape1.Left <= -400(отскок от правой стенке) то
Timer2.Enabled = True ' Timer2 включается 
Timer1.Enabled = False ' Timer1 выключается 
End If

End Sub

Здесь при нажатии на кнопку круг будет двигаться вправо, потом ударяться об форму, и идти влево. Потом мы сделаем PineBall.
Исходник можешь скачать отсюда


Есть вопросы? Спроси на нашем форуме!!
Екатерина [19.06.2010 16:36]

скажите,пожалуйста,а как сделать,чтобы шарик еще и цвет менял?

topas [23.08.2010 07:34]

Свойство backcolor меняй

Soko [28.08.2010 01:40]

следует сменить свойство FillColor.

Private Sub Command1_Click()
Shape1.FillColor = vbGreen
End Sub

цвет формы станет зелёным

compod [04.10.2010 00:39]

if shape1.left = -400 then
shape1.backcolor = vbGreen
end if

козловые краны [24.12.2010 02:06]

я бы кое-что добавила, но по сути сказано все

Промышленные теплицы [29.12.2010 20:38]

Елки-палки, уникальная заметка

daheffete [07.01.2011 14:17]

Хороший у вас блог! удачи в развитии

авто новости [09.01.2011 16:20]

Неплохо написали, нашел для себя много интересного. Продолжайте в том же духе

смотреть Блич онлайн [09.01.2011 20:22]

Мне понравился ваш блог, прочитал массу интересных статей, спасибо!

Заметки о фильмах [10.01.2011 00:24]

Статья полезная и приятно изложена, большое спасибо за дополнительный материал!

Здоровое питание [10.01.2011 03:40]

Интересно написано, но желательно дополнить статью

slensebip [12.02.2011 00:35]

статья super, автору респект

rachat de credit proprietaire [19.02.2011 20:23]

Conseils tres interessants. A quand la suite?

Stersewerly [25.02.2011 22:46]

спасибо большое было очень интересно читать

газель пермь [10.03.2011 22:32]

Блог супер! статья очень заинтересовала

annualtmoPJat [22.03.2011 18:01]

бывает...Извиняюсь, но не могли бы Вы расписать немного подробнее.

Киевбиоэнерготерапевт [25.03.2011 06:28]

Нормальный у тебя сайтец. Добавляю в закладки.

Brant Mcafee [11.04.2011 04:39]

Извините за офф-топик, не подскажете, где можно такой же симпатичный шаблон для сайта взять?

Интересный сайт! Все стильно сделано.

Андрей [11.04.2011 18:41]

Ыы я в прошлом уроке разошолся и сделал что-то подобное, токо с одним тайером картинка у мну бегает оп кругу(тоже отбиваясь от стенок),а принцип ваще другой:
Dim a As Byte
Private Sub Command1Click()
If Command1.Caption = "СТАРТ" Then
Picture1.Visible = True
Timer1.Interval = 1
End If
If Command1.Caption = "СТОП" Then
Timer1.Interval = 0
End If
If Command1.Caption = "СТАРТ" Then Command1.Caption = "СТОП" Else Command1.Caption = "СТАРТ"
End Sub

Private Sub Form
Load()
a = 1
Picture1.Visible = False
End Sub
Private Sub Timer1_Timer()
If a = 1 Then
Picture1.Left = Picture1.Left - 40
Picture1.Top = 0
End If
If a = 1 And Picture1.Left = 0 And Picture1.Top = 0 Then a = 2
If a = 2 Then
Picture1.Top = Picture1.Top + 40
Picture1.Left = 0
End If
If a = 2 And Picture1.Left = 0 And Picture1.Top = 2760 Then a = 3
If a = 3 Then
Picture1.Top = 2760
Picture1.Left = Picture1.Left + 40
End If
If a = 3 And Picture1.Left = 4320 And Picture1.Top = 2760 Then a = 4
If a = 4 Then
Picture1.Top = Picture1.Top - 40
Picture1.Left = 4320
End If
If a = 4 And Picture1.Left = 4320 And Picture1.Top = 0 Then a = 1
End Sub

Андрей [11.04.2011 18:43]

Dim a As Byte

Private Sub Command1Click()

If Command1.Caption = "СТАРТ" Then

Picture1.Visible = True

Timer1.Interval = 1

End If

If Command1.Caption = "СТОП" Then

Timer1.Interval = 0

End If

If Command1.Caption = "СТАРТ" Then

Command1.Caption = "СТОП" Else

Command1.Caption = "СТАРТ"

End Sub

Private Sub Form
Load()

a = 1

Picture1.Visible = False

End Sub

Private Sub Timer1_Timer()

If a = 1 Then

Picture1.Left = Picture1.Left - 40

Picture1.Top = 0

End If

If a = 1 And Picture1.Left = 0 And

Picture1.Top = 0 Then a = 2

If a = 2 Then

Picture1.Top = Picture1.Top + 40

Picture1.Left = 0

End If

If a = 2 And Picture1.Left = 0 And

Picture1.Top = 2760 Then a = 3

If a = 3 Then

Picture1.Top = 2760

Picture1.Left = Picture1.Left + 40

End If

If a = 3 And Picture1.Left = 4320 And

Picture1.Top = 2760 Then a = 4

If a = 4 Then

Picture1.Top = Picture1.Top - 40

Picture1.Left = 4320

End If

If a = 4 And Picture1.Left = 4320 And

Picture1.Top = 0 Then a = 1

End Sub

Андрей [11.04.2011 18:43]

Даё,чё всё в одну строку ляпает?!

Letty Rico [15.04.2011 15:05]

Текст перспективный, помещу сайт в избранное.

Понравился сайт! Все красиво сделано.

mylove [19.06.2011 16:04]

Прочитал, конечно, далеко от моей темы.

антон [28.06.2011 16:07]

я в моем коде сделал не - 400 а 0 и не 4000 а Form1.Width - Shape1.Width так что шарик будет бегать не туда сюда а независимо от местонахождения края формы к краю формы
и еще я добавил изменения цветов

вот код:

Option Explicit
Private Sub Command1Click()
Shape1.BackColor = vbGreen
Timer1.Enabled = True
Timer3.Enabled = True
End Sub
Private Sub Timer1
Timer()
Shape1.Left = Shape1.Left + 25
End Sub
Private Sub Timer2Timer()
Shape1.Left = Shape1.Left - 25
End Sub
Private Sub Timer3
Timer()
If Shape1.Left <= 0 Then
Shape1.BackColor = vbGreen
Timer1.Enabled = True
Timer2.Enabled = False
End If
If Shape1.Left >= Form1.Width - Shape1.Width Then
Shape1.BackColor = vbRed
Timer2.Enabled = True
Timer1.Enabled = False
End If

Ильдар [07.12.2011 21:32]

Private Sub Command1_Click() ' При нажатии на кнопку включается Timer1 и Timer3
Timer1.Enabled = True
Timer3.Enabled = True
End Sub
Пока в это код не добавил:
Timer2.Enabled = False
Программа не работала как надо! Шарик находился в одном месте!

conaLooveUI [01.01.2012 15:21]

а ВЫ любите свой компьютер?))))))..(см)

Прочитайте Сервер 3.0с Интернет Samp Gta samp 3.0c

AER [12.01.2012 22:39]

как заставить .GIF в окне шевелится??

vipgod [10.02.2012 13:48]

Отличная статья, мне нравитвя, достойно.

максим [18.02.2012 15:39]

не получилось что-то.. может потому что работаю на vb 5...

gazels.ru [17.06.2012 04:33]

Otlichno mne nravitsy.

usageousessog [20.11.2012 08:21]

Да-да-да, это все знают

Дани [21.11.2012 21:42]

А как повернуть объект на 90 градусов

Ivan40 [03.07.2013 19:12]

А можно ещё сделать бегущую строку. На форму помещаем 1 таймер, затем Label1 и кнопку Command1. Свойство у Label1 Left=5000, текст "Привет, Мир!", свойство таймера Enabled=False. Далее код:

Private Sub Command1Click()
Timer1.Enabled=True
End Sub

Private Sub Timer1
Timer()
Label1.Left=Label1.Left-25
End Sub

Ivan40 [03.07.2013 19:14]

Ой, извините! Поправка:

Private Sub Command1Click()

Private Sub Timer1
Timer()

Sigma20 [21.07.2013 10:53]

Добавив в код 1 и 2 таймера строки Shape1.Top = 2400 и
Shape1.Top = Shape1.Top + 500 * Sin(Shape1.Left), можно заставить круг колебаться по вертикали.



Оставлять комментарии можно только зарегистрированным




Предупреждение: Вся информация представлена исключительно в образовательных целях.
Ни авторы, ни администрация не несут ответственности в случае ее использования в противозаконных целях.