10 / 3 / 1
Регистрация: 07.03.2011
Сообщений: 88
1

Анимация (в пикчербоксе летают два шарика и при соприкосновении отталкиваются)

05.04.2011, 19:19. Показов 2293. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пытаюсь сделать анимацию, где в пикчербоксе летают два шарика и при соприкосновении отталктваются
VB.NET
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
       ' переменные
Dim x As Integer = 10
    Dim y As Integer = 30
    Dim x1 As Integer = 150
    Dim y1 As Integer = 10
    Dim dx1 As Integer = 1
    Dim dy1 As Integer = 1
    Dim xx As Integer = 30
    Dim yy As Integer = 30
    Dim L As Integer = 10
    Dim U As Integer = 10
    Dim R As Integer = 310
    Dim D As Integer = 260
    Dim dx As Integer = 2
    Dim dy As Integer = 2
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
' задаем переменные
        Dim a As Graphics = PictureBox1.CreateGraphics
        Dim b As Graphics = PictureBox1.CreateGraphics
        Dim e1, e2, s1, s2 As Point
        e1 = New Point(x, y)
        e2 = New Point(x1, y1)
        s1 = New Point(xx, yy)
        s2 = New Point(xx, yy)
'очищаем
        PictureBox1.Refresh()
'услолвия отрожения шарика от стены
        If x < L Then dx = -dx
        If y < U Then dy = -dy
        If y > D Then dy = -dy
        If x > R Then dx = -dx
        If x1 < L Then dx1 = -dx1
        If y1 < U Then dy1 = -dy1
        If y1 > D Then dy1 = -dy1
        If x1 > R Then dx1 = -dx1
' рисование самих шариков и задание движения
        a.DrawEllipse(New Pen(Color.White), x, y, xx, yy)
        b.DrawEllipse(New Pen(Color.Red, 2), x1, y1, xx, yy)
        x1 = x1 + dx1
        y1 = y1 + dy1
        x = x + dx
        y = y + dy
' попытка сделать отражение друг от друга, с условие вроде все ОК, но шарики начинают судорожно 'деркаться при касании друг друга
        If ((e1.X <= e2.X And e2.X <= e1.X + s1.X) Or (e1.X <= e2.X + s2.X And e2.X + s2.X <= e1.X + s1.X)) And ((e1.Y <= e2.Y And e2.Y <= e1.Y + s1.Y) Or (e1.Y <= e2.Y + s2.Y And e2.Y + s2.Y <= e1.Y + s1.Y)) Then
            dx = -dx
            dy = -dy
            dx1 = -dx1
            dy1 = -dy1
        End If
    End Sub
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.04.2011, 19:19
Ответы с готовыми решениями:

Два шарика, которые отталкиваются друг от друга
https://jsfiddle.net/sfjLfd6p/ Подскажите, пожалуйста, как сделать, чтобы шарики создавались в...

По экрану (хаотично!) летают два шарика (нули), зеркально отражаясь от его границ. К границе шарики подлетают под углом 45 градусов.
Еще одна задачка, помогите разобраться.. ;По экрану (хаотично!) летают два шарика (нули),...

Анимация. Два квадрата двигаются в противоположном направлении и отталкиваются от стенок синего квадрата
Два квадрата двигаются в противоположном направлении и отталкиваются от стенок синего квадрата:

Анимация: при соприкосновении двух объектов они должны образовать единое целое
Здравствуйте! Разбираюсь в анимациях Lazarus. Сделал так, чтобы два шарика (TShape) летали по форме...

1
Заблокирован
06.04.2011, 09:31 2
добавьте в условие отталкивания еще этот кусок
VB.NET
1
2
3
4
        x1 = x1 + dx1
        y1 = y1 + dy1
        x = x + dx
        y = y + dy
и/или поменяйте местами код рисования и отталкивания

еще попробуйте сделать условие на отталкивание: если сумма радиусов больше расстояния между центрами(по пифагору) - отталкивание(а то как-то длинно расписано)

я так понимаю, угол отталкивания всегда одинаков, хоть они при встрече не на одной прямой
1
06.04.2011, 09:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.04.2011, 09:31
Помогаю со студенческими работами здесь

Анимация движения шарика по параболе
Помогите написать программу для движения шарика с регулируемой скоростью . График функции у = х*х ...

Анимация шарика по окну формы
Задание: Разработать GUI-приложение с использованием графики и анимации: требуется разработать...

Анимация движения шарика по окружности
Есть программа в которой шарик движется от правой до левой стенки. Нужно переделать программу чтобы...

Анимация шарика без следов
Program upr_8_2_a; uses crt,GraphABC; const A:array of real=(87.5,71.5,82.4,94); B:array...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru