Написал функцию отрисовки линии с помощью сенсора. По задумке она должна точно рисовать линию на подобие пейнтовской. Тоесть как бы "царапать" экран).
Но иногда она работает не корректно. А именно: с самого начала рисует линию из начала координат и принимает координаты конца предыдущей линии за начало новой линии. Исчезать она должна - это не баг.
program line;
uses sensor;
var x, y, xline, yline, pointer_x, pointer_y, first_pointer_x, first_pointer_y, pointer_time, pe: integer;
keyCode: integer;
begin
sensor.init;
repeat
SetColor(255, 255, 255);
FillRect(0, 0, GetWidth, GetHeight);
SetColor(0, 0, 0);
keyCode:= GetKeyPressed;
pe:=pointer_state;
pointer_x:=pointer_dragged_x;
pointer_y:=pointer_dragged_y;
If pe>0 then begin
DrawLine(first_pointer_x,first_pointer_y,pointer_x,pointer_y);
DrawText('+',pointer_x,pointer_y);
if pointer_time=0 then begin
first_pointer_x:= pointer_dragged_x;
first_pointer_y:= pointer_dragged_y;
end;
if pointer_time>0 then begin
pointer_x:= pointer_dragged_x;
pointer_y:= pointer_dragged_y;
end;
pointer_time:=pointer_time+1;
end;
if pe=0 then begin
pointer_time:=0;
first_pointer_x:= pointer_x;
first_pointer_y:= pointer_y;
end;
Repaint;
until (keyCode = KE_KEY0) or (KeyToAction(keyCode) = GA_FIRE);
end.