Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uses graphabc;
- var
- x, y, r, w, curx, cury, oldx, oldy: integer;
- Move: boolean;
- procedure startdrag(mx, my, mb: integer);
- begin
- if(mx >= x - r) and (mx <= x + r) and (my >= y - r) and (my <= y + r) then
- begin
- Move := true;
- x := mx;
- y := my;
- end;
- end;
- procedure drag(mx, my, mb: integer);
- begin
- if Move = true then
- begin
- oldx := x;
- oldy := y;
- x := mx;
- y := my;
- curx := 0;
- cury := 0;
- end;
- end;
- procedure stopdrag(mx, my, mb: integer);
- begin
- if Move = true then
- begin
- Move := false;
- if (oldx <> 0) and (oldy <> 0) then
- begin
- curx := mx - oldx;
- cury := my - oldy;
- end;
- oldx := 0;
- oldy := 0;
- end;
- end;
- begin
- OnMouseDown := startdrag;
- OnMouseUp := stopdrag;
- OnMouseMove := drag;
- lockdrawing;
- x := 640 div 2;
- y := 480 div 2;
- r := 25;
- w := 3;
- brush.Color := clgreen;
- while true do
- begin
- window.Clear;
- if Move = false then
- begin
- y := y + cury;
- if y + r > 480 then
- begin
- y := 480 - r;
- cury := -cury + w;
- end;
- x := x + curx;
- if x + r > 640 then
- begin
- x := 640 - r;
- curx := -curx + w * 3;
- end
- else if x - r < 0 then
- begin
- x := r;
- curx := -curx - w * 3;
- end;
- cury := cury + 1;
- end;
- circle(x, y, r);
- redraw;
- if y + r = 480 then
- begin
- if curx > 0 then curx := curx - 1;
- if curx < 0 then curx := curx + 1;
- end;
- sleep(15 div 60);
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement