Advertisement
Guest User

ball

a guest
Apr 23rd, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.57 KB | None | 0 0
  1. uses graphabc;
  2.  
  3. var
  4.   x, y, r, w, curx, cury, oldx, oldy: integer;
  5.   Move: boolean;
  6.  
  7. procedure startdrag(mx, my, mb: integer);
  8. begin
  9.   if(mx >= x - r) and (mx <= x + r) and (my >= y - r) and (my <= y + r) then
  10.   begin
  11.     Move := true;
  12.     x := mx;
  13.     y := my;
  14.   end;
  15. end;
  16.  
  17. procedure drag(mx, my, mb: integer);
  18. begin
  19.   if Move = true then
  20.   begin
  21.     oldx := x;
  22.     oldy := y;
  23.     x := mx;
  24.     y := my;
  25.     curx := 0;
  26.     cury := 0;
  27.   end;
  28. end;
  29.  
  30. procedure stopdrag(mx, my, mb: integer);
  31. begin
  32.   if Move = true then
  33.   begin
  34.     Move := false;
  35.     if (oldx <> 0) and (oldy <> 0) then
  36.     begin
  37.       curx := mx - oldx;
  38.       cury := my - oldy;
  39.     end;
  40.     oldx := 0;
  41.     oldy := 0;
  42.   end;
  43. end;
  44.  
  45. begin
  46.   OnMouseDown := startdrag;
  47.   OnMouseUp := stopdrag;
  48.   OnMouseMove := drag;
  49.   lockdrawing;
  50.   x := 640 div 2;
  51.   y := 480 div 2;
  52.   r := 25;
  53.   w := 3;
  54.   brush.Color := clgreen;
  55.   while true do
  56.   begin
  57.     window.Clear;
  58.     if Move = false then
  59.     begin
  60.       y := y + cury;
  61.       if y + r > 480 then
  62.       begin
  63.         y := 480 - r;
  64.         cury := -cury + w;
  65.       end;
  66.       x := x + curx;
  67.       if x + r > 640 then
  68.       begin
  69.         x := 640 - r;
  70.         curx := -curx + w * 3;
  71.       end
  72.       else if x - r < 0 then
  73.       begin
  74.         x := r;
  75.         curx := -curx - w * 3;
  76.       end;
  77.       cury := cury + 1;
  78.     end;
  79.     circle(x, y, r);
  80.     redraw;
  81.     if y + r = 480 then
  82.     begin
  83.       if curx > 0 then curx := curx - 1;
  84.       if curx < 0 then curx := curx + 1;
  85.     end;
  86.     sleep(15 div 60);
  87.   end;
  88. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement