ImagesCollide (image1,x1,y1,frame1,image2,x2,y2,frame2)

Параметры

image1 = первое проверяемое изображение
x1 = координата x первого изображения
y1 = координата y первого изображения
frame1 - номер кадра первого изображения (не обязательно)

image2 = второе проверяемое изображение
x2 = координата x второго изображения
y2 = координата y второго изображения
frame2 - номер кадра второго изображения (не обязательно)

Описание

Эта команда похожа на ImagesOverlap, но проверяет столкновения с точностью до пикселя. При проверке не учитываются прозрачные пиксели, поэтому точность очень высокая. Но команда ImagesOverlap работает намного быстрее. В остальном они похожи.

Пример

; Пример ImagesCollide

; Установим графический режим
Graphics 640,480,16

; Создадим два рисунка - один с кругом, другой с квадратом
gfxBox=CreateImage(50,50)
gfxCircle=CreateImage(50,50)

; Рисуем квадрат в первом рисунке
; Для этого выберем буфер этого рисунка
SetBuffer ImageBuffer(gfxBox)
; Цвет - синий
Color 0,0,255
;Рисуем квадрат (оставляем пустой пространство шириной 10 пикселов вокруг квадрата)
Rect 10,10,30,30,1

; Будем рисовать круг во втором рисунке
SetBuffer ImageBuffer(gfxCircle)
Color 255,0,0
; Тоже оставим пустое пространство вокруг круга
Oval 10,10,30,30,1

; Не забудем переключиться на BackBuffer!
SetBuffer BackBuffer()

; Координаты рисунка с квадратом случайные
boxX=Rnd(50,610)
boxY=Rnd(50,430)

; Повторяем цикл до столкновения
Repeat
; Прицепим рисунок с кругом к указателю мыши
circleX=MouseX()
circleY=MouseY()
; Стандартные команда двойной буферизации: сначала очищаем экран
Cls
; Рисуем наши рисунки в их текущих координатах
DrawImage gfxBox,boxX,boxY
DrawImage gfxCircle,circleX,circleY
; изображение - на экран
Flip
; Проверяем столкновение наших рисунков
Until ImagesCollide (gfxBox,boxX,boxY,0,gfxCircle,circleX,circleY,0)

; Если столкнулись, выводим сообщение!
Text 0,0, "WE'VE HAD A COLLISION! PRESS A MOUSE BUTTON"
; Чтобы увидеть сообщение ..
Flip
; Ждем нажатия кнопки мыши
WaitMouse()
; Конец программы
EndGraphics

Главная страница

Нажмите сюда, чтобы увидеть последнюю версию этой страницы в Интернете