13.01.2014 / 14:43 | |
Magatino Администратор Сейчас: Offline
Имя: Alexandr Откуда: Где Ленин родился. Simbirsk City Регистрация: 28.01.2011
| Naik (13.01.2014/14:35) DominaN, можно же и без сортировки обойтись. Тайлы - первый слой, спрайты не могут друг друга перекрывать - второй слой.А как же деревья? Там короче такая фигня , в одном случае дерево должно быть выше , а в другом ниже перса , это проблему ты решишь своим способом , но ствол у дерева меньше в ширину чем тайл , короче перс не будет доходит до дерева вплотную.
|
13.01.2014 / 14:57 | |
Magatino Администратор Сейчас: Offline
Имя: Alexandr Откуда: Где Ленин родился. Simbirsk City Регистрация: 28.01.2011
| Изменено Magatino (13.01 / 14:58) (всего 1 раз) |
13.01.2014 / 15:20 | |
Magatino Администратор Сейчас: Offline
Имя: Alexandr Откуда: Где Ленин родился. Simbirsk City Регистрация: 28.01.2011
| Сортировка по ординат "y". x0,x9,y0,y9 - видимая часть экрана. for (int i=y0;i<y9;i++)
{
for (int j=0;j<units;j++)
if (x[j]>x0)
if (x[j]<x9)
if (y[j]==i)
g.drawImage(enemy[j],x[j],y[j],20)
}
|
13.01.2014 / 16:41 | |
DominaN Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Смоленск Регистрация: 28.09.2011
| Ну я сейчас перекрытие по z-координате сделал. Но вообще хочу сделать по пиксельной маске, где прозрачная часть не участвует в обработке столкновения, а не прозрачная рисуется цветом (0,0,0) для лучшей компрессии. Проверка столкновения происходит между масками объектов в начале кадра стандартным collidesWith, после чего они скрываются, то есть игрок их никак не видит. Но пока что вымораживает обработка коллизии, можно или запросто застрять, или же проехать через объект задним ходом.
|
13.01.2014 / 16:47 | |
Naik Пользователь Сейчас: Offline
Имя: %name% Регистрация: 14.03.2010
| DominaN, оригинально |
13.01.2014 / 18:43 | |
warlock Пользователь Сейчас: Offline
Имя: Макс Откуда: Белгород Регистрация: 06.04.2011
| Magatino (13.01.2014/14:43) А как же деревья?Там короче такая фигня , в одном случае дерево должно быть выше , а в другом ниже перса , это проблему ты решишь своим способом , но ствол у дерева меньше в ширину чем тайл , короче пБыла такая проблемма у меня в сурвайвеле . Все оч просто . Перса режем пополам , игровые Объекты тоже режем на две части так что бы нижняя часть по высоте ровнялась верхней половине перса . И выстраиваем слои так что бы верхняя часть объекта была выше двух частей перса , нижняя часть объекта ниже верхней части перса . Правда с координатами отрисовки мучаться в два раза больше , но я придумал свою систему .
|
13.01.2014 / 19:30 | |
Dimon638 Пользователь Сейчас: Offline
Регистрация: 12.04.2011
| warlock, зачем такие сложности, можно просто сортировать объекты через quickSort и они будут нормально отображаться)) . Самый нижний перекрывает более верхнего.
|
13.01.2014 / 20:11 | |
DominaN Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Смоленск Регистрация: 28.09.2011
| warlock, В After я пузырьком сортировал так - чем больше world_y объекта, тем позже он должен рисоваться, но саму сортировку я проводил не в лоб по world_y, а по ограничению области коллизии, иными словами брал не world_y, а (world_y + bbox_d). Сортировал только видимые объекты обычным пузырьком, в целом производительность весьма неплохая.
|
14.01.2014 / 01:49 | |
warlock Пользователь Сейчас: Offline
Имя: Макс Откуда: Белгород Регистрация: 06.04.2011
| DominaN, Помню когда то тестил . Там коллизия была не очень . И все таки некоторые деревья отображались не верно.
|
14.01.2014 / 05:08 | |
samodelkin Пользователь Сейчас: Offline
Имя: Сергей Откуда: Липецк Регистрация: 05.11.2013
| Завтра окончание конкурса, наконец получу свой куш и открою корпорацию по разработке игр для андроида.
|