Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Столкновение объектов Добавлено: 18.05.05 19:56  

Автор вопроса:  smeladon
Как можно задать событие столкновения объектов?
То есть, как программ узнает, что 2 объекта ( картинки ) соприкоснулись краями. При этом картинки движутся.

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 Mihalыch



ICQ: 373-509-101 

Вопросов: 56
Ответов: 330
 Профиль | | #1 Добавлено: 18.05.05 21:00
Можно так
Option Explicit
    Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
    End Type
    Private Declare Function GetWindowRect Lib "user32.dll" (ByVal hwnd As Long, ByRef lpRect As RECT) As Long
    Private Declare Function IntersectRect Lib "user32.dll" (ByRef lpDestRect As RECT, ByRef lpSrc1Rect As RECT, ByRef lpSrc2Rect As RECT) As Long

Private Sub Command1_Click()
    ;Dim rect_1 As RECT
    ;Dim rect_2 As RECT
    ;Dim iRect As RECT
    GetWindowRect Picture1.hwnd, rect_1
    GetWindowRect Picture2.hwnd, rect_2
    IntersectRect iRect, rect_1, rect_2
    If iRect.Bottom <> 0 And iRect.Left <> 0 _
    And iRect.Right <> 0 And iRect.Top <> 0 Then
        MsgBox "Сталкиваются"
    Else
        MsgBox "Не сталкиваются"
    End If
End Sub

Ответить

Номер ответа: 2
Автор ответа:
 Alexey Spirin



ICQ: 135554022 

Вопросов: 0
Ответов: 8
 Web-сайт: vbrussian.com
 Профиль | | #2
Добавлено: 18.05.05 22:00
Если картинки движутся, то что-то их движет :)
Соответственно, есть какой-либо массив/коллекция типов, в которых описаны эти самые картинки.
Считать, на мой взгляд, нужно именно через него.
Апи, конечно, хорошо, но в данном случае лучше считать по координатам.

Ответить

Номер ответа: 3
Автор ответа:
 Genetik



ICQ: 3212009 

Вопросов: 5
Ответов: 33
 Профиль | | #3 Добавлено: 25.05.05 00:39
Alexey Spirin прав. Вот к примеру:


Х1 = Image1.Left
X2 = Image2.Left
X3 = Image1.Width
X = X1+X3
if X2=X then
   MsgBox("Мля, они столкнулись";)
End If

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

Ответить

Номер ответа: 4
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #4
Добавлено: 25.05.05 01:27
Кажись кто то тут без меня гоночки пишет?
ЭЭэээ! хватит! я сам потратил бесцельно кучу времени на толкание пикчербоксов и сильно жалею об этом. Навернок когда перейду на директикс, буду жалеть опять :) задавайте координаты объектов как rect а выводите через апи! так быстрее и безглючнее!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам