Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Помогите домыслить исходник! (http://forum.oszone.net/showthread.php?t=141528)

androidz 31-05-2009 20:42 1131798

Помогите домыслить исходник!
 
Вообщем такая ситуация, есть шарик сделанный через канву, уже бегает и отскакивает (в PaintBox'e).

Нужно сделать следующее:
Сделать так чтобы шарик отбивался тенисной ракеткой, сама ракетка уже на форме в PNG формате.
Вот низнаю как сделать чтобы от Image отскакивал шарик, и ещё нужно сделать ракетку так чтобы она двигалась мышкой.

Исходник (286Кб)
Исходник + PNG Component (911Кб)

androidz 01-06-2009 15:08 1132302

Ну подскажите кто нибудь..
А то я 4 часа экспериментировал, не чо толкового не получается :(

pva 01-06-2009 15:50 1132333

тебе нужно решить задачу пересечения 2-х отрезков: траектории шарика между двумя кадрами и отрезка, который имитирует поверхность ракетки (если ракетка всегда будет находиться под одним углом). В точке пересечения делаешь "отражение", то есть из скорости шарика вычитаешь удвоенную проекцию на нормаль к отрезку ракетки. Для убедительности можно и конечную точку отразить, а можно и не отражать.

androidz 01-06-2009 16:21 1132352

ага, мне бы ещё код примерный увидеть :)
я ещё новичок в программинге :)
поэтому как всё правильно записать низнаю :(

pva 01-06-2009 23:32 1132644

Вот пример кода на C++ Builder, проблема в том, что он глюкавый, не могу найти где ошибся. Но основную идею иллюстрирует. Ещё в архиве есть файл от математики 4.0, чтоб проверить вычисления.

pva 02-06-2009 13:33 1133000

Исправленный вариант: всё равно иногда пропускает мимо ракетки, но это из-за упрощений. Иногда не понятно, на опережение работает или отстаёт. Параметры отображения подобраны для наиболее гладкого видеоэффекта. Управление: колесо мыши (чтобы поворачивать ракетку) и перемещение. Фращение ракетки не участвует в рассчёте физики, поэтому отбивать шар вращением бесполезно.

androidz 02-06-2009 15:57 1133114

Спасибо :)


Время: 08:01.

Время: 08:01.
© OSzone.net 2001-