C語言 ACLLib鍵盤方向鍵控制圖形移動以及滑鼠控制圖形移動
阿新 • • 發佈:2022-05-29
目錄
滑鼠的引數
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; }