Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 23.11.2011
Сообщений: 12
1

Увеличение скорости объектов при их соприкосновении

15.12.2011, 15:39. Просмотров 1840. Ответов 5
Метки нет (Все метки)


Здравствуйте.
помогите пожалуйста доделать пункты:
1) Добавить возможность выбора скорости ракетки при выборе в запущенной программе из меню Easy; Medium; Hard.
2)При соприкосновении шарика с движущимся прямоугольником чтобы скорость шарика увеличивалась и когда уже шарик движется от прямоугольника его скорость постепенно уменьшалась до начального значения.



Visual Basic
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
Public xdelta, ydelta, X, Y, m
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 38 And Shape2.Top >= 0 Then
Timer2.Enabled = True
End If
If KeyCode = 40 And Shape2.Top + Shape2.Height + 50 <= Form1.Height Then
Timer3.Enabled = True
End If
If KeyCode = 32 Then 'код кнопки "пробел"
If Timer1.Enabled = True Then 'условие если таймер включен
Timer1.Enabled = False ' выключение таймера
Else
Timer1.Enabled = True 'включение таймера
End If
End If
If KeyCode = 35 Then
xdelta = -20: ydelta = -20
End If
If KeyCode = 12 Then
xdelta = -50: ydelta = -50
End If
If KeyCode = 34 Then
xdelta = -80: ydelta = -80
End If
If KeyCode = 109 Then
Timer1.Interval = Timer1.Interval + 10
End If
If KeyCode = 107 Then
Timer1.Interval = Timer1.Interval - 10
End If
Label2 = Timer1.Interval
If KeyCode = 49 Then
Frame1.Visible = True
End If
End Sub
 
 
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
Timer2.Enabled = False
Timer3.Enabled = False
End Sub
 
Private Sub Form_Load()
xdelta = 20: ydelta = 20 'расстояние смещения объекта
X = Shape1.Top: Y = Shape1.Left 'начальное положение
End Sub
 
 
Private Sub Option1_Click()
If Option1.Enabled = True Then
X = X + xdelta: Y = Y + ydelta 'смещение круга по координатам
If (X > Form1.ScaleWidth - 360) Or (X + Shape1.Width > Shape2.Left And X < Shape2.Left + Shape2.Width And Y + Shape1.Height > Shape2.Top And Y < Shape2.Top + Shape2.Height) Then   'изменение направления движения по горизонтали
xdelta = -xdelta 'условия изменения направления по горизонтали
Beep
End If
If (Y < 20 Or Y > Form1.ScaleHeight - 360) Or (X + Shape1.Height > Shape2.Left And X < Shape2.Left + Shape2.Height And Y + Shape1.Width > Shape2.Top And Y < Shape2.Top + Shape2.Width - 1000) Then          'изменение направления движения по вертикали
ydelta = -ydelta   'условия изменения направления по горизонтали
Beep
End If
xdelta = 20: ydelta = 20
If Option1.Enabled = True Then
Frame1.Visible = False
End If
End If
End Sub
 
Private Sub Option2_Click()
If Option3.Enabled = True Then
X = X + xdelta: Y = Y + ydelta 'смещение круга по координатам
If (X > Form1.ScaleWidth - 360) Or (X + Shape1.Width > Shape2.Left And X < Shape2.Left + Shape2.Width And Y + Shape1.Height > Shape2.Top And Y < Shape2.Top + Shape2.Height) Then   'изменение направления движения по горизонтали
xdelta = -xdelta 'условия изменения направления по горизонтали
Beep
End If
If (Y < 20 Or Y > Form1.ScaleHeight - 360) Or (X + Shape1.Height > Shape2.Left And X < Shape2.Left + Shape2.Height And Y + Shape1.Width > Shape2.Top And Y < Shape2.Top + Shape2.Width - 1000) Then          'изменение направления движения по вертикали
ydelta = -ydelta   'условия изменения направления по горизонтали
Beep
End If
xdelta = 50: ydelta = 50
 
If Option2.Enabled = True Then
Frame1.Visible = False
End If
End If
End Sub
 
Private Sub Option3_Click()
If Option3.Enabled = True Then
X = X + xdelta: Y = Y + ydelta 'смещение круга по координатам
If (X > Form1.ScaleWidth - 360) Or (X + Shape1.Width > Shape2.Left And X < Shape2.Left + Shape2.Width And Y + Shape1.Height > Shape2.Top And Y < Shape2.Top + Shape2.Height) Then   'изменение направления движения по горизонтали
xdelta = -xdelta 'условия изменения направления по горизонтали
Beep
End If
If (Y < 20 Or Y > Form1.ScaleHeight - 360) Or (X + Shape1.Height > Shape2.Left And X < Shape2.Left + Shape2.Height And Y + Shape1.Width > Shape2.Top And Y < Shape2.Top + Shape2.Width - 1000) Then          'изменение направления движения по вертикали
ydelta = -ydelta   'условия изменения направления по горизонтали
Beep
End If
xdelta = 100: ydelta = 100
 
If Option3.Enabled = True Then
Frame1.Visible = False
End If
End If
 
End Sub
 
Private Sub Timer1_Timer()
X = X + xdelta: Y = Y + ydelta 'смещение круга по координатам
If (X > Form1.ScaleWidth - 360) Or (X + Shape1.Width > Shape2.Left And X < Shape2.Left + Shape2.Width And Y + Shape1.Height > Shape2.Top And Y < Shape2.Top + Shape2.Height) Then   'изменение направления движения по горизонтали
xdelta = -xdelta 'условия изменения направления по горизонтали
Beep
End If
If (Y < 20 Or Y > Form1.ScaleHeight - 360) Or (X + Shape1.Height > Shape2.Left And X < Shape2.Left + Shape2.Height And Y + Shape1.Width > Shape2.Top And Y < Shape2.Top + Shape2.Width - 1000) Then          'изменение направления движения по вертикали
ydelta = -ydelta   'условия изменения направления по горизонтали
Beep
End If
If X + Shape1.Width > Shape2.Left And X < Shape2.Left + Shape2.Width And Y + Shape1.Height > Shape2.Top And Y < Shape2.Top + Shape2.Height Then
m = m + 1
Label1 = m
End If
If X < 0 Then
Timer1.Enabled = False
X = 2500
Y = 2500
End If
Shape1.Move X, Y 'смещение круга
End Sub
 
Private Sub Timer2_Timer()
If Shape2.Top > 0 Then
Shape2.Top = Shape2.Top - 100
End If
End Sub
 
Private Sub Timer3_Timer()
If Shape2.Top < 3720 Then
Shape2.Top = Shape2.Top + 100
End If
End Sub
0
Вложения
Тип файла: rar 2 объекта +.rar (2.2 Кб, 13 просмотров)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.12.2011, 15:39
Ответы с готовыми решениями:

Размещение объектов в пределах формы и отражение двух объектов при соприкосновении
Помогите с задачей, чтобы круг летал по форме и соприкасаясь с квадратом отталкивался от него....

Уничтожение объектов при соприкосновении
Может кто поможет. Начал делать простую игру. Пули летят и при попадании в движущийся объект...

Удалить один из объектов и увеличить другой при соприкосновении объектов.
Как сделать так чтобы (Когда Sprite1 дотронулся до Sprite2 тогда sprite2 destroy и Sprite1 + size)...

Увеличение скорости движущихся объектов
Господа,в игре &quot;ГОНКИ&quot; задумано плавное увеличение скорости объекта CAR .Иммитация движения CAR -за...

5
es geht mir gut
11222 / 4699 / 1178
Регистрация: 27.07.2011
Сообщений: 11,426
15.12.2011, 15:44 2
Есть готовый проект Арканоид. Хочешь посмотреть?
0
0 / 0 / 0
Регистрация: 23.11.2011
Сообщений: 12
15.12.2011, 16:01  [ТС] 3
Давай...



Картинка- добавление к первому сообщению
0
Миниатюры
Увеличение скорости объектов при их соприкосновении  
es geht mir gut
11222 / 4699 / 1178
Регистрация: 27.07.2011
Сообщений: 11,426
15.12.2011, 16:14 4
Смотри:
1
Вложения
Тип файла: rar breakout.rar (95.5 Кб, 20 просмотров)
0 / 0 / 0
Регистрация: 23.11.2011
Сообщений: 12
15.12.2011, 16:46  [ТС] 5
Неееее... я с таким кодом не разберусь... мне бы просто хоть, что вставить надо в программу для моих условий...
0
es geht mir gut
11222 / 4699 / 1178
Регистрация: 27.07.2011
Сообщений: 11,426
15.12.2011, 17:45 6
Цитата Сообщение от JoyLucky Посмотреть сообщение
xdelta, ydelta
У тебя 2 прекрасные переменные. Вот их и меняй.

Добавлено через 11 минут
Тебе бы не мешало разбить код на процедуры по событиям, чтобы было и тебе понятнее и другим.
Допустим такие:
Столкновение, Движение, Увеличение_скорости_шарика,Увеличение_скорости_ракетки, Отскок, Следующий_уровень и т.д.
Так и кодить проще.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.12.2011, 17:45

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Остановка Таймера при соприкосновении объектов на форме
Всем привет! ребят столкнулся с такой проблемой Имеется 2 лейбла 4 и 5. 4 Это грубо говоря стена,...

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

Увеличение скорости при последовательности роутеров
Некоторые люди говорят что если объединить несколько мобильных wi-fi роутеров то можно получить...

увеличение скорости
как сделать чтоб при просмотре видео у меня на сайтеб у людей с маленькой скоростью интернета видео...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.