Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
VeeNox
0 / 0 / 0
Регистрация: 21.04.2009
Сообщений: 42
1

Движение объекта и реакция его на препятствие

21.03.2010, 17:01. Просмотров 1459. Ответов 8
Метки нет (Все метки)

Люди, помогите запрограммировать данный exe-шник (дело срочное). У меня получилось запрограммировать движение объекта и генерацию препятствий, но не получается сделать так, чтобы во-первых это работало одновременно и во-вторых объект реагировал на возникающее препятствие...Help!
Вот сделанный мной код, а ниже в архиве exe-шник того, что должно получится а также начатый мною проект
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
Option Explicit
 
Dim i As Long
Dim a As Integer 'для прямоугольника
Dim c As Integer
Dim b As Integer
Dim d As Integer
Dim n As Integer 'количество шагов
Dim k As Integer
Dim x As Integer 'координаты центра окружности
Dim y As Integer
Dim x0 As Integer
Dim y0 As Integer
Dim x1 As Integer
Dim y1 As Integer
Dim dx As Integer 'приращение
Dim dy As Integer
Dim dx1 As Integer
Dim dy1 As Integer
 
 
Private Sub Check1_Click()
 
If Check1.Value = 1 Then
Randomize (5000)
a = 500 + Int(Rnd * 5501)
c = 500 + Int(Rnd * 5501)
b = 500 + Int(Rnd * 6001)
d = 500 + Int(Rnd * 6001)
Picture1.Line (a, b)-(c, d), vbWhite, B
 
End If
If Check1.Value = 0 Then
Picture1.Line (a, b)-(c, d), vbBlack, B
End If
End Sub
 
 
Private Sub Picture1_Click()
Picture1.DrawWidth = 1
  x = 4508 'начальные координаты
  y = 3368
  x1 = 3308
  y1 = 2168
  n = 1
  dx = 150
  dy = 150
  dx1 = 150
  dy1 = 150
  
  While (n < 100)
      
   If x < 350 Or x > 8666 Then dx = -dx 'условие отражения от стены
   If y < 350 Or y > 6386 Then dy = -dy
   If x1 < 350 Or x1 > 8666 Then dx1 = -dx1
   If y1 < 350 Or y1 > 6386 Then dy1 = -dy1
   
   Picture1.Circle (x, y), 200, vbRed
   Picture1.Circle (x1, y1), 200
   Picture1.Circle (x, y), 200, vbRed
   For i = 1 To 1000000: Next i
   x = x + dx
   y = y + dy
   x1 = x1 + dx1
   y1 = y1 + dy1
   n = n + 1
   Wend
 
End Sub
0
Вложения
Тип файла: rar Движение.rar (6.4 Кб, 63 просмотров)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.03.2010, 17:01
Ответы с готовыми решениями:

Движение графического объекта по траектории и его вращение
Помогите!!! Нужно нарисовать фигуру и задать движение. Начальное направление задается в виде...

Сделать произвольное движение объекта и отскакивание его от стен
Подскажите, как сделать произвольное движение объекта (небольшой прямоугольник) и отскакивание его...

Движение объекта и его остановка при определенных условиях
Приветствую! Возникли у меня непонятки: Допустим, при нажатии на кнопку в новом потоке начинает...

Возможно ли сделать движение зрачков, реагирующее на движение какого-либо объекта
Вообщем благодаря модеру удалось разукрасить картинку,за что ему спасибо. Нужна анимация для нее....

Захват изображения с видеокамеры -> реакция на движение -> снимок с камеры
Здравствуйте, форумчане! Помогите пожалуйста реализовать захват камеры с последующим детектором...

8
(Lim)
6 / 6 / 0
Регистрация: 03.03.2010
Сообщений: 45
23.03.2010, 07:38 2
а зачем счетчик для n?
0
VeeNox
0 / 0 / 0
Регистрация: 21.04.2009
Сообщений: 42
23.03.2010, 20:26  [ТС] 3
Чтобы организовать цикл, чтобы рисовались окружности иммитирующие движение...короче чтобы организовать движение

Добавлено через 2 часа 43 минуты
Вот сдесь я внесла ещё некоторые изменения и теперь движение обьекта и генерация препятствий происходят одновременно, но остаётся вопрос: как сделать чтобы объект отражался от возникающего препятствия???

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
Option Explicit
 
Dim i As Long
Dim Л As Integer 'границы
Dim П As Integer
Dim В As Integer
Dim Н As Integer
Dim a As Integer 'для прямоугольника
Dim c As Integer
Dim b As Integer
Dim d As Integer
Dim n As Integer 'количество шагов
Dim k As Integer
Dim x As Integer 'координаты центра окружности
Dim y As Integer
Dim x1 As Integer
Dim y1 As Integer
Dim dx As Integer 'приращение
Dim dy As Integer
Dim dx1 As Integer
Dim dy1 As Integer
 
 
Private Sub Check1_Click()
If Check1.Value = 1 Then
Picture1.Line (a, b)-(c, d), vbWhite, B
End If
If Check1.Value = 0 Then
Picture1.Line (a, b)-(c, d), vbBlack, B
End If
 
End Sub
 
Private Sub Form_Load()
Show
Picture1.DrawWidth = 1
Randomize (6000)
a = 500 + Int(Rnd * 7501)
c = 500 + Int(Rnd * 7501)
b = 500 + Int(Rnd * 6001)
d = 500 + Int(Rnd * 6001)
 
  x = 4508 'начальные координаты
  y = 3368
  x1 = 3308
  y1 = 2168
  n = 1
  dx = 150
  dy = 150
  dx1 = 150
  dy1 = 150
  Л = 350
  П = 8666
  В = 350
  Н = 6386
Timer1.Interval = 10
End Sub
 
Private Sub Timer1_Timer()
    
    If x < Л Or x > П Then dx = -dx 'условие отражения от стены
    If y < В Or y > Н Then dy = -dy
    If x1 < Л Or x1 > П Then dx1 = -dx1
    If y1 < В Or y1 > Н Then dy1 = -dy1
   
   Picture1.Circle (x, y), 200, vbRed
   Picture1.Circle (x1, y1), 200
   Picture1.Circle (x, y), 200, vbRed
   For i = 1 To 1000000: Next
   x = x + dx
   y = y + dy
   x1 = x1 + dx1
   y1 = y1 + dy1
   n = n + 1
 
End Sub
0
(Lim)
6 / 6 / 0
Регистрация: 03.03.2010
Сообщений: 45
24.03.2010, 07:00 4
Visual Basic
1
 Л = 350
Имхо, моветон - обзывать переменные на кириллице, у кого-то может быть версия vb (или другого языка), не поддерживающая кириллицу (вот у меня дома, например) и тогда проект не прочтется.
Я вчера бился-бился над вопросом, но так и не решил. Кое-что получилось, прикладываю. Для удобства убрал "трассировку" объекта и сгладил его движение. Мне кажется, в оригинале след круга рисуется не таким способом, как ты сделала (но придумала интересно!).
Вот, может, чем-то и поможет.
0
Вложения
Тип файла: rar Move_attempt.rar (3.0 Кб, 40 просмотров)
24.03.2010, 07:00
(Lim)
6 / 6 / 0
Регистрация: 03.03.2010
Сообщений: 45
24.03.2010, 07:02 5
Цитата Сообщение от VeeNox Посмотреть сообщение
Чтобы организовать цикл, чтобы рисовались окружности иммитирующие движение...короче чтобы организовать движение
по достижении i = 1000000 движение остановится? Я сделал Do ... Loop, бесконечность форева
0
(Lim)
6 / 6 / 0
Регистрация: 03.03.2010
Сообщений: 45
24.03.2010, 10:07 6
Почти получилось, только мерцание колец не смог преодолеть
0
Вложения
Тип файла: rar Move_ok.rar (3.3 Кб, 50 просмотров)
VeeNox
0 / 0 / 0
Регистрация: 21.04.2009
Сообщений: 42
25.03.2010, 23:10  [ТС] 7
Пасиба, я почерпнула отсюда полезные вещи
0
(Lim)
6 / 6 / 0
Регистрация: 03.03.2010
Сообщений: 45
29.03.2010, 15:36 8
Питоноид. версия 1.0:
0
Вложения
Тип файла: rar pytonoid.rar (4.0 Кб, 59 просмотров)
VeeNox
0 / 0 / 0
Регистрация: 21.04.2009
Сообщений: 42
29.03.2010, 16:31  [ТС] 9
Клёвенько))) С каждым разом убеждаюсь какая интересная вещь "программирование"))
0
29.03.2010, 16:31
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.03.2010, 16:31

Сформировать меню: 1) свободное движение объекта 2)движение с клавиатуры
Сформировать на экране меню, состоящее из следующих пунктов: 1. Движение вдоль периметра экрана....

Странная реакция на поворот объекта
Я поворачиваю объект с коллайдером при помощи transform.Rotate (new Vector3 (0, 0, rotate_angle) и...

Реакция объекта по клику мыши
По примеру Кучки пытался сделать Я не могу врубиться как делается выделение и перетаскивание если...


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

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

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