Форум: "Игры";
Текущий архив: 2007.05.20;
Скачать: [xml.tar.bz2];
ВнизБильярд... Найти похожие ветки
← →
Ricks © (2006-06-18 12:32) [0]... вернее столкновения. Народ, помогите мне разобраться со столкновениями шаров. Шары у меня взаимодействуют нормально, разлетаются куда надо, но проблема вот в чем - ИНОГДА большинство шаров начинают носиться как угорелые по всему столу, это происходит из за неконтролируемого прироста скорости, но откуда он берется неясно.
Вот мой кусочек кода:
для i-ого и j-ого шаров:
sx[.], sy[.] - положение шара
vx[.], vy[.] - скорость шара
dx:=sx[j] - sx[i];
dy:=sy[j] - sy[i];
d:=rad[i] + rad[j];
u:=sqrt(sqr(dx) + sqr(dy)) - d;
if u < 0 then begin
a:=ArcTan2( dy, dx );
u:=abs(u);
sx[i]:=sx[i] - cos(a) * u;
sy[i]:=sy[i] - sin(a) * u;
sx[j]:=sx[j] + cos(a) * u;
sy[j]:=sy[j] + sin(a) * u;
v1:=sqrt( sqr( vx[i] ) + sqr( vy[i] ) );
v2:=sqrt( sqr( vx[j] ) + sqr( vy[j] ) );
vx[i]:=vx[i] - (v1+v2) * cos(a);
vy[i]:=vy[i] - (v1+v2) * sin(a);
vx[j]:=vx[j] + (v1+v2) * cos(a);
vy[j]:=vy[j] + (v1+v2) * sin(a);
PS: в теории я знаю - закон сохранения количества движения и закон сохранения энергии, но я думаю я их не так реализовал...
← →
Ricks © (2006-06-18 12:47) [1]Что из этого выходит можете посмотреть здесь:
http://www.ricks.pisem.net/b.zip
← →
Ricks © (2006-06-19 00:57) [2]Все, разобрался - где-то нашел то что нужно,
вот результат моих полудневных стараний:
http://www.ricks.pisem.net/b2.zip
← →
Rial © (2006-06-19 01:22) [3]Прикольно.
Только шарики слишком долго едут с очень маленькой скоростью.
Сделай нижний предел больше.
А силу кия наращивай быстрее.
← →
Algol (2006-06-20 13:00) [4]А вращательное движение шара учитывается ?
А удар "с подскоком" ?
← →
Ricks © (2006-06-20 14:44) [5]
> Rial ©
Уже сделал, еще что-нибудь придумаю, выложу новую версию
> Algol
Это в планах...
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2007.05.20;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.039 c