Ĺadny brzuch
procedure GRAWITACJA;
begin
if StanSpadania = SPADA then
begin
if PILKA.CzasSpadania <= 0 then
begin
PILKA.CzasSpadania := Round(Sqrt(2 * PILKA.Y / g));
PILKA.Vy := 0;
end;
Opadanie := PILKA.CzasSpadania - Sqrt(2 * PILKA.Y / g);
PILKA.Vy := PILKA.Vy - (Opadanie * g);
PILKA.Vy := PILKA.Vy * 0.6;
PILKA.Y := PILKA.Y + PILKA.Vy;
PILKA.X := PILKA.X - PILKA.Vx;
PILKA.Z := PILKA.Z - PILKA.Vz;
if PILKA.Y <= 0 then
begin
PILKA.CzasSpadania := 0;
StanSpadania := ODBIJA;
end;
end
else
begin
if (PILKA.CzasSpadania = 0) then
begin
PILKA.Vy := -PILKA.Vy;
PILKA.CzasSpadania := -PILKA.Vy / g;
end;
PILKA.Vy := PILKA.CzasSpadania * g;
PILKA.Vy := -PILKA.Vy * 0.6;
PILKA.CzasSpadania := PILKA.CzasSpadania + 1;
PILKA.Y := PILKA.Y + PILKA.Vy;
PILKA.X := PILKA.X - PILKA.Vx;
PILKA.Z := PILKA.Z - PILKA.Vz;
if PILKA.Vy <= 0 then
begin
PILKA.CzasSpadania := 0;
StanSpadania := SPADA;
end;
end;
end; //}
Zmienne są raczej jasne(g to przyspieszenie ziemskie = 10).
Piłka spada z określonej wysokości, następnie odbija się na tę samą wysokość, i zamiast opadać to z dużą PILKA.Vy dąży ku +nieskończoności.
Co powinienem zmienić w tym kodzie, aby piłka odbijała się cały czas?
//Dodaje rekord z nazwami:
DANE_PILKA = record KW : gluQuadricObj; //Kwadryka piłki m : Integer; //Masa Vx, Vy, Vz : Extended; //Prędkości w kierunkach X Y Z X, Y, Z : Extended; //Położenie w przestrzeni X Y Z Textura : gluInt; //Textura piłki Kolor : TGLArrayf4; //Kolor niepoteksturowanej Ciezar : TCoord; //Ciężar (m * g) CzasSpadania : Extended; //Czas spadania z maksymalnej wysokości r : Integer; //Promień piłki end;
Użytkownik mariuszlorenc edytował ten post 22 styczeń 2006, 11:26
Jak chcesz osiągnąć efekt odbijania piłki to nie może się cały czas odbijać. Stopniowo podskoki mają być coraz niższe aż do zatrzymania.
Wrzuć procedurkę w timer i po wykonaniu podskoku odpowiedniu modyfikuj przyspieszenie i czas interval tego timera - powinno zadziałać :) jak nadązasz o co mi chodzi :)
To jest tylko teoretyczna myśl na rozwiązanie tego problemu...
Chyba mnie nie zrozumiałeś ... dodanie oporów w odbiciu to pestka, ale piłka nieodbija się całyczas nawet na tę samą wysokość!!!
"Piłka spada z określonej wysokości, następnie odbija się na tę samą wysokość, i zamiast opadać to z dużą PILKA.Vy dąży ku +nieskończoności."
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Zmienne są raczej jasne(g to przyspieszenie ziemskie = 10).
Piłka spada z określonej wysokości, następnie odbija się na tę samą wysokość, i zamiast opadać to z dużą PILKA.Vy dąży ku +nieskończoności.
Co powinienem zmienić w tym kodzie, aby piłka odbijała się cały czas?
//Dodaje rekord z nazwami:
DANE_PILKA = record KW : gluQuadricObj; //Kwadryka piłki m : Integer; //Masa Vx, Vy, Vz : Extended; //Prędkości w kierunkach X Y Z X, Y, Z : Extended; //Położenie w przestrzeni X Y Z Textura : gluInt; //Textura piłki Kolor : TGLArrayf4; //Kolor niepoteksturowanej Ciezar : TCoord; //Ciężar (m * g) CzasSpadania : Extended; //Czas spadania z maksymalnej wysokości r : Integer; //Promień piłki end;
Użytkownik mariuszlorenc edytował ten post 22 styczeń 2006, 11:26
Jak chcesz osiągnąć efekt odbijania piłki to nie może się cały czas odbijać. Stopniowo podskoki mają być coraz niższe aż do zatrzymania.
Wrzuć procedurkę w timer i po wykonaniu podskoku odpowiedniu modyfikuj przyspieszenie i czas interval tego timera - powinno zadziałać :) jak nadązasz o co mi chodzi :)
To jest tylko teoretyczna myśl na rozwiązanie tego problemu...
Chyba mnie nie zrozumiałeś ... dodanie oporów w odbiciu to pestka, ale piłka nieodbija się całyczas nawet na tę samą wysokość!!!
"Piłka spada z określonej wysokości, następnie odbija się na tę samą wysokość, i zamiast opadać to z dużą PILKA.Vy dąży ku +nieskończoności."