C语言 ACLLib键盘方向键控制图形移动以及鼠标控制图形移动
作者:互联网
目录
鼠标的参数
button:
5:没有按下鼠标
1:按下左键
2:按下中键
3:按下右键
event:
5:移动鼠标
0:按下鼠标
2:松开鼠标
x和y为鼠标所在的坐标
键盘的参数
key:
↑:38
↓:40
←:37
→:39
event:
0:按下
1:松开
键盘方向键控制图形移动
#include <stdio.h>
#include "acllib.h"
/*
鼠标:
button:
5:没有按下鼠标
1:左键
2:中键
3:右键
event:
5:移动鼠标
0:按下鼠标
2:松开鼠标
键盘:
key:
↑:38
↓:40
←:37
→:39
event:
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;
}
标签:方向键,鼠标,int,50,按下,key,图形,移动,event 来源: https://www.cnblogs.com/denglongjiao/p/16323640.html