{...} begin if not InitMouse then begin writeln(?Для работы программы необходима мышь?); halt; end; GetPal(p[0],0,256); FadeOut(p); randomize; for i := 1 to NumSprites do CreateSprite(NameSprt[(i mod 2)+1], random(320-Xsize),random(200-Ysize), 1,1,Sprt[i]); r.ax := $13; { устанавливаем режим } intr($10,r); { 320х200х256 цветов } SetMouseRange(0,0,299,179); {для спрайта 20х20} SetMouse(150,90); {помещаем мышь в центр экрана} BlackPal; CreateScreenBuffer; {создаем буфер} CreateBackBuffer; {создаем буфер для фона} PutBackGround; {рисуем фон} FadeIn(p); for i := 1 to NumSprites do begin PutSprite(Sprt[i]);{и рисуем на его месте спрайт} end; SetTextParm(15,0,1); repeat {теперь спрайт будет двигаться по экрану} {до тех пор, пока мы не нажмем на клавишу} BackBufferToScreen; for i := 1 to NumSprites do begin CalcSpritePosition(Sprt[i]); if i = 1 then begin {переопределяем координаты} {спрайта, управляемого мышью} MouseStatus := GetMouse(Sprt[i].x,Sprt[i].y); Sprt[i].x := Sprt[i].x * 64; Sprt[i].y := Sprt[i].y * 64; end; PutSprite(Sprt[i]); { выводим спрайт} end; if (MouseStatus and 1) = 1 then PutText(56,16,?Левая кнопка мыши нажата?); if (MouseStatus and 2) = 2 then PutText(56,24,?Правая кнопка мыши нажата?); if (MouseStatus and 4) = 4 then PutText(56,32,?Средняя кнопка мыши нажата?); FPS := GetFPS; str(FPS:0:1,s); PutText(120,184,? ?+s+? fps ?); if FPS > 1 then {изменяем приращение} for i := 1 to NumSprites do begin Sprt[i].dx := sign(Sprt[i].dx) *round(64*70/FPS); Sprt[i].dy := sign(Sprt[i].dy) *round(64*70/FPS); end; WaitVerticalRetrace; {ожидаем обратный ход луча кадровой развертки} ScreenBufferToScreen; {буфер - на экран} until keypressed; readkey; {чистим буфер клавиатуры} DestroyBackBuffer; {уничтожаем буфер фона} DestroyScreenBuffer; {уничтожаем буфер} FadeOut(p); r.ax := $3; intr($10,r); {возвращаемся в текстовый режим} for i := NumSprites downto 1 do DestroySprite(Sprt[i]); end.