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, а оно всё равно будет, как ты иначе будешь такое проверять?
__________________
Эль Презеденте |