.hit test

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Человек
Обычный пользователь
Обычный пользователь
 
Сообщения: 57
Зарегистрирован: 02.01.2004 (Пт) 15:34
Откуда: Russia. Saint-Petersburg

.hit test

Сообщение Человек » 06.02.2004 (Пт) 15:48

:shock: Проблема: health отнимаются только если совпадает верхняя левая координата снаряда(rocket) и верхняя левая координата танка(tank).
Во Flash'e там был .hit test, а в Basic'e нету.
:?: Как написать так, что бы здоровье отнималось при соприкосновении снаряда и танка?

Код: Выделить всё
Dim health As Integer
If rocket.Top = tank.Top And rocket.Left = tank.Left Then health = health - 30
--<Более мощный компьютер глючит быстрее и точнее>--

Ilya Vasilyev
Постоялец
Постоялец
 
Сообщения: 820
Зарегистрирован: 06.08.2002 (Вт) 5:36
Откуда: Russia, Omsk

Сообщение Ilya Vasilyev » 06.02.2004 (Пт) 15:53

Для простоты можно проверить, чтобы один угол снаряда (top, left) был "внутри" танка, т.е.
танк.left <= снаряд.left <=танк.left + танк.width
танк.top <= снаряд.top <=танк.top + танк.height

а в идеале - то же самое для каждого угла снаряда
Изображение
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали

Человек
Обычный пользователь
Обычный пользователь
 
Сообщения: 57
Зарегистрирован: 02.01.2004 (Пт) 15:34
Откуда: Russia. Saint-Petersburg

to Ilya Vasilyev

Сообщение Человек » 06.02.2004 (Пт) 21:07

спасибо!
--<Более мощный компьютер глючит быстрее и точнее>--


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21

    TopList