C语言 ACLLib键盘方向键控制图形移动以及鼠标控制图形移动
鼠标的参数键盘的参数键盘方向键控制图形移动鼠标控制图形移动鼠标的参数
button:5:没有按下鼠标1:按下左键2:按下中键3:按下右键event:5:移动鼠标0:按下鼠标2:松开鼠标x和y为鼠标所在的坐标
键盘的参数
key:↑:38↓:40←:37→:39event:0:按下1:松开
键盘方向键控制图形移动
#include <stdio.h>#include "acllib.h"/*鼠标: button: 5:没有按下鼠标 1:左键2:中键3:右键event:5:移动鼠标0:按下鼠标2:松开鼠标 键盘:key:↑:38↓:40←:37→:39event:0:按下1:松开 */ void KeybordListener(int key,int event){static int x=10;//必须要static,不然每次按都是在原始位置 static int y=10;printf("key=%d,event=%d\n",key,event);beginPaint();clearDevice();//清屏,必须要放在开始绘图后 ellipse(x,y,x+50,y+50);endPaint();if(key==38&&event==0){y-=50;}else if(key==40&&event==0){y+=50;}else if(key==37&&event==0){x-=50;}else if(key==39&&event==0){x+=50;}}int Setup(){initWindow("Move",DEFAULT,DEFAULT,800,800);initConsole();//绘制图案开始位置 beginPaint();ellipse(10,10,60,60);endPaint();registerMouseEvent(MouseListener);return 0;}
鼠标控制图形移动
我这的图形不是像上面那种画个圆形,而是通过粗线条来点一下画个圆点。
#include <stdio.h>#include "acllib.h"void MouseListener(int x,int y,int button,int event){static int ox=0;static int oy=0; static int flag=0;printf("x=%d,y=%d,button=%d,event=%d\n",x,y,button,event);if(event==0){//当鼠标按下时可拖动点ox=x;oy=y;flag=1;}else if(event==2){flag=0;}if(flag){beginPaint();setPenWidth(8);//设置画笔粗细clearDevice();//清屏,将之前画的点清掉,不然就变成画图了line(ox,oy,x,y);endPaint();ox=x;oy=y;}}int Setup(){initWindow("Move",DEFAULT,DEFAULT,800,800);initConsole();registerMouseEvent(MouseListener);return 0;}