![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
История, произошедшая со мной 5 минут назад...
Все как обычно, захожу в флэш, начинаю писать там программу... Тут на определенной стадии мне потребовалось не просто обнаружить столкновение 2 кругов, но и сторону, с которой это произошло. Пишу функцию, обьявляю в ней переменные, делаю все как обычно. Тут и начались непоняные вещи. Компьютер мне выдавал вот что: Ну думаю, с чего то у меня прописалась ссылка на обьект, начал думать и пробовать разные вещи... Думал часа эдак 2, меня начало уже колотить) Думал задать вопрос... но как то тема глупая, во флэше не 1 день и такие вопросы... просидел ещё часок... был готов убить свой компьютер. И вдруг случайно увидел, что я компилил все под АС 1. Поставил 2, все заработало на ура. Мораль: проверяй блин, настройки публиша
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Banned
[+4 25.10.07]
Регистрация: May 1999
Сообщений: 218
|
ну и? Всё правильо компьютер тебе выдавал.
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Повторить сей спец-эффект не удалось.
|
|
|||||
|
Я не про то
)Мораль прочитай, и не повторяй моих ошибок... (меня все ещё трясет) 2 __etc function collision(ball:Object,obj:Object){
if (dist(ball._x,obj._x,ball._y,obj._y)<(obj._width+ball._width)/2){
var side=dist(obj._x+obj._width/2,ball._x,obj._y,ball._y); //правая
var type:String="r"; //right
var oldSide=side;
side=Math.min(side,dist(obj._x-obj._width/2,ball._x,obj._y,ball._y)); // в сайд у нас координаты левой\правой стороны, какая больше.
trace ("Side="+side+", Oldside="+oldSide);
if (oldSide!=side) type="l";
}
}
function dist(x1,x2,y1,y2){ //растояние между 2 любыми точками
return Math.round(Math.sqrt(Math.abs(x1-x2)*Math.abs(x1-x2)+Math.abs(y1-y2)*Math.abs(y1-y2)));
}
this.onEnterFrame=function(){
c=collision(ball,obj);
}
startDrag(ball,true);
Подносим болл к обж - с левой стороны все нормально, с правой они равны.
__________________
Тут мужик танцует и поёт про флэш Последний раз редактировалось Psycho Tiger; 09.09.2007 в 16:18. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
Цитата:
Кстати, Math.abs в dist совсем лишний, x1-x2 возводится в квадрат и знак роли не играет. Последний раз редактировалось iNils; 09.09.2007 в 16:26. |
|
|||||
|
Кстати верно... что то я про это совсем забыл)
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Banned
[+1 08.05.08]
[+4 14.04.08] [+1.3 02.05.08] Регистрация: Oct 2006
Адрес: кагбэ Киеф!!1
Сообщений: 1,473
|
|
|
|||||
|
Нет, я же привел код из функции...
Возможно это мой мозг тупил, но то что я опубликовал в 1 посте было лишь следствием того, что должно было быть. Протестируйте мой 2 пост, в ас 1 при приближении ball к obj, а точнее к его правому краю, и происходит что то вроде a=2=b=1...
__________________
Тут мужик танцует и поёт про флэш Последний раз редактировалось Psycho Tiger; 10.09.2007 в 10:46. |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:04. |
|
|
« Предыдущая тема | Следующая тема » |
|
|