12.02.2012 / 12:30 | |
Zvers Пользователь Сейчас: Offline
Регистрация: 06.02.2010
| BorderFol, if(числьо>=10&&числьо<=40) {
}
|
12.02.2012 / 14:03 | |
BorderFol Пользователь Сейчас: Offline
Имя: Юрий Бахмацкий Откуда: Хмельницкий Регистрация: 20.08.2011
| if(player.collidesWith(tl1, collide)){
if(x+w<x0){
x-=a;
}
if(x>x0+w0){
x+=a;
}
if(y>y0+h0){
y+=a;
}
}
Написал такой код и столкновения вообще пропали |
12.02.2012 / 14:24 | |
XakepPRO Модератор форума Сейчас: Offline
Регистрация: 20.06.2012
| BorderFol, посмотри, выполнятся ли самое главное верхнее условие: if(player.collidesWith(tl1, collide)){ System.out.println("player.collidesWith(tl1, collide) = true"); }
И в консоли (например, в кемуле) посмотри результат. Если строка выполняется, то выясняй причину дальше. А вообще, было бы неплохо, если ты выложил весь исходный код, а не его кусочек. Изменено XakepPRO (12.02 / 14:25) (всего 1 раз) |
12.02.2012 / 14:35 | |
BorderFol Пользователь Сейчас: Offline
Имя: Юрий Бахмацкий Откуда: Хмельницкий Регистрация: 20.08.2011
| XakepPRO, if(player.collidesWith(tl1, collide)){
if(player.getX()+player.getWidth()-10<tl1.getX()){
x-=a;
}
if(player.getX()>tl1.getX()+tl1.getWidth()-10){
x+=a;
}
if(player.getY()>tl1.getY()+tl1.getHeight()-10){
y+=a;
}
}
Это на 3 стороны Изменено BorderFol (12.02 / 14:38) (всего 3 раза) |
12.02.2012 / 15:18 | |
XakepPRO Модератор форума Сейчас: Offline
Регистрация: 20.06.2012
| BorderFol, ок, скажу по-другому, если выложишь весь класс.
|
13.02.2012 / 07:09 | |
Dimon638 Пользователь Сейчас: Offline
Регистрация: 12.04.2011
| BorderFol, Ещё, как вариант создания непроходимых объектов: Убери все текущие условия столкновений, и к подобным условиям: if(napravlenie==RIGHT) { //Герой идет вправо } <...> (и на все остальные 3 стороны) Добавь следующее: if(!hero.collidesWith(TiledLayer,true)&&napravlenie==RIGHT) { //Герой идет вправо } Надеюсь понял логику Если столкновений щас нет и нажали вправо, значит можно двигать героя, если произошло столкновение, то условие не выполнится и движения не произойдет. Изменено Dimon638 (13.02 / 07:14) (всего 1 раз) |
13.02.2012 / 10:58 | |
BorderFol Пользователь Сейчас: Offline
Имя: Юрий Бахмацкий Откуда: Хмельницкий Регистрация: 20.08.2011
| я это пробывал но вот в чем нюанс : когда ты двигался вправо а потом повернул вверх прямо перед блоком то сам понимаешь что случится герой не сможет двигатся вообще потому что он столкнулся в объектом Поэтому нужно находить место где произошло столкновение
Изменено BorderFol (13.02 / 11:00) (всего 1 раз) |
13.02.2012 / 11:01 | |
BorderFol Пользователь Сейчас: Offline
Имя: Юрий Бахмацкий Откуда: Хмельницкий Регистрация: 20.08.2011
| XakepPRO, зачем тебе ?
|
13.02.2012 / 11:28 | |
DominaN Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Смоленск Регистрация: 28.09.2011
| BorderFol, на твой пост ( 13.02.2012 / 09:58) отвечу, Тогда делай проверку столкновения collidesWith(some_shit, false), а пиксельную точность используй только для трейса оружия. |
13.02.2012 / 11:32 | |
BorderFol Пользователь Сейчас: Offline
Имя: Юрий Бахмацкий Откуда: Хмельницкий Регистрация: 20.08.2011
| так столкновения уже сделал в новой версиии в шапнке темы
|