Авторизироваться
  • Страница 1 из 1
  • 1
Модератор форума: ADMIN, Nextik  
столкновение спрайтов
01.12.2011 в 14:36 Сообщение #1
sanee
Новичок
Пользователи
Сообщений: 18
Награды: 0
Репутация: 1
Offline
дело в том что я программирую на телефоне и не могу подключать либы.
Скажите как сделать столкновение картинок?
01.12.2011 в 21:17 Сообщение #2
PassCall
Знающий
Проверенные
Сообщений: 88
Награды: 0
Репутация: 4
Offline
if (abs(x1-x2)<(ImageWidth(image1)+ImageWidth(image2))/2.0) or (abs(y1-y2)<(ImageHeight(image1)+ImageHeight(image2))/2.0) then ..........

или более правильно:

a:=abs(x1-x2);
b:=abs(y1-y2);
c:=trunc((ImageWidth(image1)+ImageWidth(image2))/2.0);
d:=trunc((ImageHeight(image1)+ImageHeight(image2))/2.0);

if (a<c) or (b<d) then .......................
01.12.2011 в 21:51 Сообщение #3
121212
Программист
Проверенные
Сообщений: 268
Награды: 7
Репутация: 14
Offline
паскаль твой код всегда труднопонимаемый:D т.к. дохрена не нужных вычислений=)
Code
if (px+24>zx) and (pX<zx+24) and (py+24>zy) and (pY<zy+24) then столкновение=)
py,px координаты игрока zx,zy координаты тайла. 24 эт размер тайла и игрока в пикселях(24х24).
Сообщение отредактировал 121212 - Четверг, 01.12.2011, 21:53
01.12.2011 в 23:04 Сообщение #4
PassCall
Знающий
Проверенные
Сообщений: 88
Награды: 0
Репутация: 4
Offline
ну
1. если размеры спрайта не одинаковы, то нужно вычесть расстояние, на котором они сталкиваются (половина от первого спрайта+половина от второго спрайта)

2. а если размер спрайтов заранее не известен? например, при "скармливании" функции определённых спрайтов?
02.12.2011 в 13:37 Сообщение #5
sanee
Новичок
Пользователи
Сообщений: 18
Награды: 0
Репутация: 1
Offline
большое спасибо
02.12.2011 в 13:39 Сообщение #6
sanee
Новичок
Пользователи
Сообщений: 18
Награды: 0
Репутация: 1
Offline
скажите пожалуйста а процедура может использвать переменные объявленные в главной программе?
02.12.2011 в 14:32 Сообщение #7
PassCall
Знающий
Проверенные
Сообщений: 88
Награды: 0
Репутация: 4
Offline
может, конечно
02.12.2011 в 15:26 Сообщение #8
sanee
Новичок
Пользователи
Сообщений: 18
Награды: 0
Репутация: 1
Offline
Спасибо)
  • Страница 1 из 1
  • 1
Поиск: