Работа с мышью graphics.h - C (СИ)
Формулировка задачи:
Проблема такая, задание на лабораторную сделать четверостиие, которое можно перетаскивать мышью, функцию вроде бы написал правильно, но вопреки всему она работает только один раз, чего уже только не перепробывал.
#include <stdlib.h> #include <graphics.h> #include <unistd.h> #include <stdio.h> int xx=10,yy=10; int x,y; void waitclick() { int x=0,y=0; while(!ismouseclick(WM_LBUTTONDOWN)) { } while(!ismouseclick(WM_LBUTTONUP)) { delay(50); setfillstyle(1,RED); bar(0,0,640,490); setfillstyle(1,BLUE); bar(mousex(),mousey(),mousex()+100,mousey()+100); } } void waitclick1() { while(!ismouseclick(WM_LBUTTONDOWN)) { } } void easy(int xq,int yq) { while(!ismouseclick(WM_LBUTTONUP)) { delay(50); setfillstyle(1,RED); bar(0,0,640,490); setfillstyle(1,BLUE); bar(xx+mousex()-xq,yy+mousey()-yq,xx+mousex()-xq+100,yy+mousey()-yq+100); } xx=xx+mousex()-xq; yy=yy+mousey()-yq; printf("%d %d",xx,yy); } void sender() { int xr,yr; while (1) { getmouseclick(WM_LBUTTONDOWN, xr, yr); if ((xx<=xr)&&(xr<=xx+100)&&(yy<=yr)&&(yr<=yy+100)) { easy(xr,yr); waitclick1(); } } } int main(void) { initwindow (450, 300); setfillstyle(1,BLUE); bar(xx,yy,xx+100,yy+100); sender(); return 0; }
Решение задачи: «Работа с мышью graphics.h»
textual
Листинг программы
xx+=mousex()-xq; yy+=mousey()-yq; printf("%d %d %d %d %d %d\n",xx,yy,mousex(),mousey(),xq,yq);
Объяснение кода листинга программы
xx
иyy
— это переменные, которые используются для хранения текущего положения курсора мыши.mousex()
иmousey()
— это функции, которые возвращают текущее положение курсора мыши.xq
иyq
— это переменные, которые используются для хранения предыдущего положения курсора мыши.xx+=mousex()-xq;
— это операция, которая обновляет текущее положение курсора мыши, добавляя разницу между текущим и предыдущим положением.yy+=mousey()-yq;
— это операция, которая обновляет текущее положение курсора мыши, добавляя разницу между текущим и предыдущим положением.printf(
%d %d %d %d %d %d\n,xx,yy,mousex(),mousey(),xq,yq);
— это операция, которая выводит текущее положение курсора мыши, предыдущее положение курсора мыши, а также текущее значение функцийmousex()
иmousey()
.- Значения
xx
,yy
,mousex()
,mousey()
,xq
иyq
выводятся в консоль.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д