![]() |
|
||||||||||
|
|||||
|
При отскоке шайбы от клюшки, тебе нужно учитывать направление движения самой шайбы и клюшки? Я бы не учитывал, ИМХО так будет играбельней. Если надо, сам потом расширишь алгоритм.
Так как у нас и шайба и клюшка - это окружности, после удара шайба будет двигаться по вектору, который можно провести от центра клюшки до центра шайбы(изменишь, если не устраивает). Самое сложное - определить координаты шайбы и клюшки в момент столкновения. Простой hitTest тут естественно не подходит, так как шайба и клюшка могут двигаться с большими скоростями и пролететь друг сквозь друга. Я бы решил это через систему уровнений. Сейчас я не могу привести её, так как исходник реализующий это на домашнем компе( в своё время делал арканоид (: ), вечером если надо скину. Смысл в том что можно записать уровнение движения шайбы и клюшки как Где X0ш, Y0ш - начальная позиция, Vx, Vy - горизонтальная и вертикальная скорость, t - время То де самое для клюшки Они столкнуться если расстояние между ними будет равно сумме радиусов. Дописываем в систему Вообщем всё записанное это одна большая система. Найти нам надо t - время, через которое они встретятся. После нахождения t подставляем его в любые уравнения и находим X и Y шайбы или клюшки. Если надо, вечером выложу рабочий код, на Delphi правда.
__________________
while(1) {} Последний раз редактировалось Division; 25.11.2008 в 17:10. |
![]() |
Часовой пояс GMT +4, время: 18:42. |
|
|
« Предыдущая тема | Следующая тема » |
|
|