|
|
|||||
Регистрация: Nov 2009
Сообщений: 176
|
отбивание шарика от линии
Приветствую!
Не получается решить одну проблему. Есть шарик который двигается. При столкновении с линией, он должен правильно отбиться. Почему то в моём коде это не происходит. Где у меня ошибка? ball.rotation = 90; addEventListener(Event.ENTER_FRAME, onEnterFrame); function onEnterFrame(event:Event):void { moveBall(); if(/*столкновение произошло*/) { reflection(new Point(ball.x, ball.y)); } } function reflection(pt:Point):void { var x:Number = pt.x; var y:Number = pt.y; var perpendicular:Number = ball.rotation - Math.PI / 2; var iangle:Number = Math.atan2(y, x); var rangle:Number = 2 * perpendicular - iangle;//угол падения равен углу отражения; ball.rotation = rangle; } function moveBall():void { var radians:Number = ball.rotation*Math.PI/180; var vectorX:Number = Math.cos(radians); var vectorY:Number = Math.sin(radians); var speed:Number = 2; ball.x += speed*vectorX; ball.y += speed*vectorY; } |
|
|||||
Регистрация: Nov 2013
Сообщений: 86
|
А где функция, что проверяет, произошло ли столкновение? Или она без проблем работает?
|
|
|||||
Регистрация: Nov 2009
Сообщений: 176
|
та функция работает правильно и я подумал что не нужно её здесь описывать. Вопрос ведь не про столкновение, а про отбивание.
|
|
|||||
Регистрация: Nov 2013
Сообщений: 86
|
Может, дело в
Rotation ведь, насколько я помню, в градусах, а Math.PI - радианы...
|
|
|||||
Регистрация: Nov 2009
Сообщений: 176
|
так как правильно посчитать?
|
|
|||||
Регистрация: Mar 2006
Адрес: Odessa
Сообщений: 157
|
А от какой линии шарик должен отталкиваться?
__________________
Не всех война убила - многих покалечила |
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Если честно, то я не знаю, как сделать отскок, но я точно знаю, что если Вы хотите сделать отскок от любой поверхности, то идете не верно. По коду видно, что мяч вращается, а это затрудняет вычисление правильного угла. При расчетах отскока нужно учитывать нормаль прямой. Мне самому интересно, как это сделать.
Добавлено через 31 секунду Может кто-то хоть последовательность правильную подскажет. |
|
|||||
Регистрация: Nov 2009
Сообщений: 176
|
так мяч и должен вращаться. Это может быть и не мяч, а машинка, которая разворачивается и едет в другую сторону.
|
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Если что-то не понятно, то спрашивайте.
Картинки png, почему они с белым фоном на форуме? |
|
|||||
listener
|
Wadimir, вы, часом, не из этой темы функцию reflection попытались использовать? Так оно и там не работало.
Обратите внимание на пост №3 из той же темы. Там есть рациональное зерно, и если вы немного переосмыслите подход к реализации геометрии на плоскости, вам может это помочь. Akopalipsis, не устаете меня поражать. |
Часовой пояс GMT +4, время: 07:34. |
|
« Предыдущая тема | Следующая тема » |
|
|