THRUE.PAS 936 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. Uses Graph,CRT,MytPU;
  2. Const
  3. v0 = 10; {� ç «ì­ ï ᪮à®áâì}
  4. al = 3.14*270/180; {� ç «ì­ë© 㣮«}
  5. up = 0.8; {“¯à㣮áâì è à }
  6. BallSize = 7;
  7. Var
  8. x,y,vx,vy : real;
  9. t : longint;
  10. Procedure WriteBall(x,y:real);
  11. Begin
  12. FillEllipse(Round(x),Round(470-Y),BallSize,BallSize);
  13. End;
  14. Procedure BallFly(v0,al0,x0,y0:real);
  15. Var x,y : real;
  16. Begin
  17. t := 1;
  18. repeat
  19. vx := v0*cos(al0);
  20. vy := v0*sin(al0);
  21. x := Vx*(t/100)+x0;
  22. Y := Vy*(t/100) - 5*sqr((t/100))+y0;
  23. WriteBall(x,y);
  24. Delay(10);
  25. inc(t);
  26. If y < 0 then
  27. begin
  28. if not Keypressed then BallFly(v0*up,abs(ArcTan(abs(Vy/Vx))),x,y);
  29. exit;
  30. end;
  31. Until (t = 2147483647) or (x > 640) or (KeyPressed);
  32. End;
  33. Begin
  34. InitVGA;
  35. Randomize;
  36. SetColor(Blue);
  37. SetFillStyle(SolidFill,Green);
  38. SetWriteMode(XORPut);
  39. BallFly(v0,al,320,240);
  40. ReadKey;
  41. CloseGraph;
  42. End.