16.03.2015 / 02:17 |  | 
eNvisible    Пользователь  
   Сейчас: Offline 
 Имя: **** Откуда: В России. Регистрация: 19.07.2014
   | Nevesel,  Есть Rect - квадраты. И их можно проверить на пересечение: if(Rect.intersects(rect1, rect2)){...} А квадраты задавать, привязывая их координаты к X и Y спрайтов.
   Изменено eNvisible (16.03 / 02:18) (всего 1 раз) | 
  16.03.2015 / 03:16 |  | 
Askalite    Пользователь  
   Сейчас: Offline 
 Имя: Аскалайт Регистрация: 12.10.2011
   | Nevesel, ну, могу лишь посоветовать определять столкновения в два уровня:   1. Прописать радиусы объектов, равные радиусу кругу, описаного вокруг центра обьекта. Это можно сделать в пооцессе создания объекта, в конструкторе. и если сумма радиуса меньше или равно, чем расстояние между центрами объектов, то предполагаемое столкновение есть. Если нет, то столкновения нет.   2. Считывать коллизии попиксельно, пробегая все нарисованные точки.
   | 
  20.03.2015 / 23:10 |  | 
Nevesel    Пользователь  
   Сейчас: Offline 
 Имя: Александр Регистрация: 07.11.2012
   | Askalite, eNvisible, ясненько... И что- получается что все андроид игры, где учитываются столкновения, сделаны подобным образом???
   | 
  21.03.2015 / 00:38 |  | 
eNvisible    Пользователь  
   Сейчас: Offline 
 Имя: **** Откуда: В России. Регистрация: 19.07.2014
   | Nevesel,  Вообще в любых играх коллизии происходят при пересечении геометрических фигур. Треугольники, квадраты, окружности, в 3д играх сферы и т.д... В j2me то же самое, только тебе уже давали готовый метод, а здесь это нужно сделать самому. Глянь примеры под андроид - там aNNiMON пример спрайта выложил. Возьми за основу, да накрути своих методов. На самом деле это полезней - изнутри всё знать, чем либами готовыми пользоваться     Изменено eNvisible (21.03 / 00:43) (всего 1 раз) | 
  21.03.2015 / 00:44 |  | 
Magatino    Администратор  
   Сейчас: Offline 
 Имя: Alexandr Откуда: Где Ленин родился. Simbirsk City Регистрация: 28.01.2011
   | eNvisible,  По клеткам (по ячейкам игровой карты) можно проверять.
   | 
  23.03.2015 / 16:50 |  | 
Oak    Пользователь  
   Сейчас: Offline 
 Имя: Коля Откуда: Москва Регистрация: 02.06.2010
   | eNvisible, вообще, в стандартном Android API есть  Rect c boolean intersects(), но для прямоугольников пересечение и самому нетрудно написать, а вот с остальными фигурами иногда могут возникнуть трудности.  __________________
   Эль Презеденте  | 
  23.03.2015 / 19:36 |  | 
Askalite    Пользователь  
   Сейчас: Offline 
 Имя: Аскалайт Регистрация: 12.10.2011
   | Цитата Magatino: eNvisible,  По клеткам (по ячейкам игровой карты) можно проверять.  Это вроде для поиска столкновений из множества?
   | 
  23.03.2015 / 19:55 |  | 
Magatino    Администратор  
   Сейчас: Offline 
 Имя: Alexandr Откуда: Где Ленин родился. Simbirsk City Регистрация: 28.01.2011
   | Askalite,  Это как в Марио проверяешь, есть ли рядом препятствие: cell_x = hero_x / tile_width + rect;  
cell_y = hero_y / tile_height;  
   
tile = map [ cell_y * world_width + cell_x];  
   
if (tile==wall)  
move=false;  
  | 
  24.03.2015 / 04:58 |  | 
eNvisible    Пользователь  
   Сейчас: Offline 
 Имя: **** Откуда: В России. Регистрация: 19.07.2014
   | Тут главное оптимизировать, чтобы всё со всем на столкновения не проверялось     | 
  24.03.2015 / 07:24 |  | 
Oak    Пользователь  
   Сейчас: Offline 
 Имя: Коля Откуда: Москва Регистрация: 02.06.2010
   | eNvisible, а оно всё равно будет, как ты иначе будешь такое проверять?
  __________________
   Эль Презеденте  |