![]() |
здрасти всем, пытаюсь написать аэрохоккей, и ну никак не могу избавиться от бага, проблема в следущем:при отбиении мяча иногда мяч пролетает сквозь биту а иногда просто залипает к ней, не могу понять почему...буду благодарен если хоть намекнете на проблему :drinks:
исходник прикрепил и рядом с ним реализованная игра вот именно к этой игре хочу приблизить свою но...увы. код не слизан! а вот ссылка на готовую игрулю iNils - сори |
Цитата:
|
Здравствуйте big_shtorm!
Попробуйте использовать hitTest. Еще одно. Мне непонятно зачем на Symbol 1 навешен код? Почему бы сразу не на _root. |
Alex_beginner ваше замечание учел, поправил код, попробывал hitTest (в общем в исходнике 3 разных способа обнаружения сталкновения) результат не очень красивый зато вроде мячь не проскакивает насквозь, но вот проблема с залипанием на биту осталась ((( причем она выевляеться когда скорость биты равна 0, пробывал сравить условие чтоб никогда не была равна нулю...при этом она липнет и дергаясь отлетает...я думаю что всетаки я чтото напартачил с функцией реакции на столкновение function reaction(). об этой функции рассказываеться в книге "Секреты разработки игр в Macromedia Flash MX" Джоб Макар вот так она выглядит у него для двух шаров типа бильярд:
Код:
function reaction(b1, b2, x1, x2, y1, y2, time) { |
Столкнулась с такой же проблемой.
В моем случае я предполагаю, что такое безобразие происходит из-за того, что точек соприкосновения объектов получается много. Возьмем мячик (кружок), ударяется о стену. У кружка по радиусу получается до 360 точек соприкосновения. Скорость мяча все время разная, допустим за кадр он пробегает 5, будем так говорить, пикселей, тогда пока он будет отскакивать получается он проскочить еще пару пискелей, от чего и получается что он дерагется. Как решить этот вопрос? |
Эй ребята, как так, это очень многим поможет.
|
в исходнике все события отслеживаются в:
Код:
_root.onEnterFrame = function (){Код:
_root.onMouseMove=function(){ |
Ребят, попробывал все сделать по книге...собрал необходимые функции в одну кучу и получилось неплохо...только вот для шаров которые катаються "сами по себе" типа бильярд...но когда перевожу управление одним шаром на мышь получается лажа ((( может надо както по другому подойти к этому всему подскажите кто сталкивался ато скоро ап стену уже убьюсь :wacko:
|
Вложений: 2
ура...
Проблему решил добовлением дополнительной проверки по сумме радиусов...которая вызывает функцию прощета новых векторных скоростей со статичным временным параметром...т.е. работают 2 проверки первая основная прощитывает на 1 кадр вперед (котроя к стати и не всегда срабатывала почемуто) и проверка по сумме радиусов. выкладываю исходники, может кому пригодяться иль лучше сделает...(не забыв об авторе :rolleyes:) billard - это для бильярда и т.п. с сохранением почти всех законов физики(для добавления затухания нужно добавить переменную со значением от 0 до 1 и в каждом кадре умножать ускорение жаров на нее) airhockey - собственно хоккей. P.S. спосибо всем кто учавствовал. |
| Часовой пояс GMT +4, время: 05:22. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.