Вниз  Android-программирование (1-ые посты)
- 16.03.2015 / 02:17
eNvisible
  Пользователь

eNvisible 
Сейчас: Offline
Nevesel, Есть Rect - квадраты. И их можно проверить на пересечение:
if(Rect.intersects(rect1, rect2)){...}
А квадраты задавать, привязывая их координаты к X и Y спрайтов.

Изменено eNvisible (16.03 / 02:18) (всего 1 раз)
- 16.03.2015 / 03:16
Askalite
  Пользователь

Askalite 
Сейчас: Offline
Nevesel, ну, могу лишь посоветовать определять столкновения в два уровня:
  1. Прописать радиусы объектов, равные радиусу кругу, описаного вокруг центра обьекта. Это можно сделать в пооцессе создания объекта, в конструкторе. и если сумма радиуса меньше или равно, чем расстояние между центрами объектов, то предполагаемое столкновение есть. Если нет, то столкновения нет.
  2. Считывать коллизии попиксельно, пробегая все нарисованные точки.
- 20.03.2015 / 23:10
Nevesel
  Пользователь

Nevesel 
Сейчас: Offline
Askalite, eNvisible, ясненько... И что- получается что все андроид игры, где учитываются столкновения, сделаны подобным образом???
- 21.03.2015 / 00:38
eNvisible
  Пользователь

eNvisible 
Сейчас: Offline
Nevesel, Вообще в любых играх коллизии происходят при пересечении геометрических фигур. Треугольники, квадраты, окружности, в 3д играх сферы и т.д... В j2me то же самое, только тебе уже давали готовый метод, а здесь это нужно сделать самому. Глянь примеры под андроид - там aNNiMON пример спрайта выложил. Возьми за основу, да накрути своих методов. На самом деле это полезней - изнутри всё знать, чем либами готовыми пользоваться :hack:

Изменено eNvisible (21.03 / 00:43) (всего 1 раз)
- 21.03.2015 / 00:44
Magatino
  Администратор

Magatino 
Сейчас: Offline
eNvisible, По клеткам (по ячейкам игровой карты) можно проверять.
- 23.03.2015 / 16:50
Oak
  Пользователь

Oak 
Сейчас: Offline
eNvisible, вообще, в стандартном Android API есть Rect c boolean intersects(), но для прямоугольников пересечение и самому нетрудно написать, а вот с остальными фигурами иногда могут возникнуть трудности.
__________________
 Эль Презеденте
- 23.03.2015 / 19:36
Askalite
  Пользователь

Askalite 
Сейчас: Offline
Цитата Magatino:
eNvisible, По клеткам (по ячейкам игровой карты) можно проверять.
  Это вроде для поиска столкновений из множества?
- 23.03.2015 / 19:55
Magatino
  Администратор

Magatino 
Сейчас: Offline
Askalite, Это как в Марио проверяешь, есть ли рядом препятствие:
  1. cell_x = hero_x / tile_width + rect;
  2. cell_y = hero_y / tile_height;
  3.  
  4. tile = map [ cell_y * world_width + cell_x];
  5.  
  6. if (tile==wall)
  7. move=false;

- 24.03.2015 / 04:58
eNvisible
  Пользователь

eNvisible 
Сейчас: Offline
Тут главное оптимизировать, чтобы всё со всем на столкновения не проверялось :gg:
- 24.03.2015 / 07:24
Oak
  Пользователь

Oak 
Сейчас: Offline
eNvisible, а оно всё равно будет, как ты иначе будешь такое проверять?
__________________
 Эль Презеденте
Наверх  Всего сообщений: 4453
Фильтровать сообщения
Поиск по теме
Файлы топика (184)