powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Тормозит форма
10 сообщений из 10, страница 1 из 1
Тормозит форма
    #33638783
3ybacTuK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот есть у меня форма, в ней 2 фрейма с 3 картинками Image каждая где-то по 320кб, создаю я 4 фрейм и там я делаю анимацию....Нажимаю клавишу запуска анимации и форма повисла....Как от этого можно избавиться?
...
Рейтинг: 0 / 0
Тормозит форма
    #33638786
3ybacTuK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для подробного описания анимации:
Я создаю ещё одно поле Image 320кб, а на нём ещё 1 поле, и по нажатию клавиши запуска меняются его координаты Image.Left и Image.Top
...
Рейтинг: 0 / 0
Тормозит форма
    #33639085
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Создаешь чем? массивом элементов?
2) Движение картинок - дело тяжелое.
3) Лучше дай код. (где виснет)
...
Рейтинг: 0 / 0
Тормозит форма
    #33639264
3ybacTuK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1) Да массивом элементов
2) Ну очень надо
3) Ну я организую движение с помощью цикла For..Next ну вот у меня проходит первый цикл, картинка смещяется, и всё...дальше недвигается.
...
Рейтинг: 0 / 0
Тормозит форма
    #33639671
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Формат картинки? BMP - тогда ладно, если JPG то перебор.
2) ТАк двигаешь?
Код: plaintext
1.
2.
   For i =  1  To  2000 
      Image1.Left = i
   Next i
А через таймер?
3) Лучше дай код, не очень понятна задача.
...
Рейтинг: 0 / 0
Тормозит форма
    #33639691
3ybacTuK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Двигаю именно так, картинки пробовал и JPG и BMP. Попробовал и на VB.NET посчитал что он удобней и начал делать на нём, всё равно такие же тормоза. А как сделать через таймер? Чтоб по нажатию клавиши включался таймер значение i изменялось, когда необходимое значение достигнуто таймер остановился и процесс можно повторить ещё раз...код можно и на VB и на VB.NET
...
Рейтинг: 0 / 0
Тормозит форма
    #33639846
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ставишь таймер на форму, и в Timer1_Timer прописываешь что надо.
Timer1.Enabled=True пошел
=False стоп
Interval - время задержки в мс

при нажатии на кнопку обнуляешь i (i должно быть глобально для формы)

BMP сколько весил?
Если JPG весил 300Кб то BMP должен более мега весить... А на NET быстрее только из-зи оптимизации.
...
Рейтинг: 0 / 0
Тормозит форма
    #33639902
3ybacTuK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да у BMP размер где-то мег
Вот Код который я написал(писал на VB.NET вручную переводил на VB так что простите еси что не так,)
Вообщем объясню смысл анимации....Есть балиистический пистолет, он стреляет, шарик летит по параболе.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
'ExpDS1 - кнопка запуска
'FrExpDSpeed - ползунок который определяет начальную скорость полёта
'ForNextT - Таймер
'g думаю все знают константа ускорения свободного падения
'Shar - Image в котором появляется сам шарик, именно его анимация происходит
'шарик летит по уравнениям движения x=x0+vt y=y0+g*t^2/2 => x0 и y0 начальные Image.Left и Image.Top
' y - координата конца рисунка
Dim t, y0, x0, g, y as Integer
Private Sub ExpDS1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExpDS1.Click
        t =  0 
        Shar.Visible = True
        Shar.Picture = LoadPicture(App.Path & "\Recources\шар.bmp")
        FrExpDSpeed.Enabled = False
        g =  9 . 81 
        y0 = Shar.Top
        x0 = Shar.Left
        ForNextT.Enabled = True
        t = t +  0 . 1 
        Shar.Top = y0 + g * t ^  2  /  2 
        Shar.Left = x0 + FrExpDSpeed.Value * t
        If Shar.Top= y then ForNextT.Enabled = False 
 End Sub
Так должно быть?
...
Рейтинг: 0 / 0
Тормозит форма
    #33639911
3ybacTuK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот немного подправил
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
'ExpDS1 - кнопка запуска
'FrExpDSpeed - ползунок который определяет начальную скорость полёта
'ForNextT - Таймер
'g думаю все знают константа ускорения свободного падения
'Shar - Image в котором появляется сам шарик, именно его анимация происходит
'шарик летит по уравнениям движения x=x0+vt y=y0+g*t^2/2 => x0 и y0 начальные Image.Left и Image.Top
' y - координата конца рисунка
Dim t, y0, x0, g, y as Integer
Private Sub ExpDS1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExpDS1.Click
        t =  0 
        Shar.Visible = True
        Shar.Picture = LoadPicture(App.Path & "\Recources\шар.bmp")
        ExpDS1.Enabled=False        
        FrExpDSpeed.Enabled = False
        g =  9 . 81 
        y0 = Shar.Top
        x0 = Shar.Left
        ForNextT.Enabled = True
        t = t +  0 . 1 
        Shar.Top = y0 + g * t ^  2  /  2 
        Shar.Left = x0 + FrExpDSpeed.Value * t
        If Shar.Top= y then 
          ForNextT.Enabled = False 
          ExpDS1,Enabled=True
          FrExpDSpeed.Enab;ed=True
          Shar.Left=x0
          Shar.Top=y0
        end if 
 End Sub

...
Рейтинг: 0 / 0
Тормозит форма
    #33639912
3ybacTuK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ещё немного, что-то я постоянно всегда забываюь
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
'ExpDS1 - кнопка запуска
'FrExpDSpeed - ползунок который определяет начальную скорость полёта
'ForNextT - Таймер
'g думаю все знают константа ускорения свободного падения
'Shar - Image в котором появляется сам шарик, именно его анимация происходит
'шарик летит по уравнениям движения x=x0+vt y=y0+g*t^2/2 => x0 и y0 начальные Image.Left и Image.Top
' y - координата конца рисунка
Dim t, y0, x0, g, y as Integer
Private Sub ExpDS1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExpDS1.Click
        t =  0 
        Shar.Visible = True
        Shar.Picture = LoadPicture(App.Path & "\Recources\шар.bmp")
        ExpDS1.Enabled=False        
        FrExpDSpeed.Enabled = False
        g =  9 . 81 
        y0 = Shar.Top
        x0 = Shar.Left
        ForNextT.Enabled = True
        t = t +  0 . 1 
        Shar.Top = y0 + g * t ^  2  /  2 
        Shar.Left = x0 + FrExpDSpeed.Value * t
        If Shar.Top= y then 
          ForNextT.Enabled = False 
          ExpDS1,Enabled=True
          FrExpDSpeed.Enab;ed=True
          Shar.Visible=False
          Shar.Left=x0
          Shar.Top=y0
         end if 
 End Sub
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Тормозит форма
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]