Processing 007 鼠标、键盘事件
1 鼠标事件
1.2 鼠标坐标
processing 中 mouseX, mouseY 是默认的保存鼠标位置的变量
void draw() {
background(255);
circle(mouseX, mouseY, 300);
}
让圆跟随鼠标运动。
1.3 上一帧鼠标位置
上一帧鼠标位置 pmouseX, pmouseY
void draw() {
background(255);
line(pmouseX, pmouseY, mouseX, mouseY);
}
很不错的一种鼠标痕迹效果
1.4 鼠标事件
鼠标按下后,会自动调用 mousePessed 函数
鼠标按下
void mouseMoved(){
x = mouseX;
y = mouseY;
}
鼠标按下后圆会跑到鼠标位置。
除了有按下事件还有其它几个事件:
鼠标松开
void mouseReleased(){
x = mouseX;
y = mouseY;
}
鼠标拖拽
void mouseDragged(){
x = mouseX;
y = mouseY;
}
鼠标点击
void mouseClicked(){
x = mouseX;
y = mouseY;
}
鼠标双击
void mouseClicked(MouseEvent e){
if(e.getCount() == 2){
println("double clicked");
}
}
鼠标滚动
void mouseWheel(MouseEvent e){
println(e.getCount());//滚动量
}
在循环中判断
除了上述方式之外,也可以直接在代码中判断
void draw() {
background(255);
if(mousePressed){
println("mouse clicked");
}
}
键盘事件
keyPressed 函数用来处理键盘按下的事件
float vx, vy, x, y;
void setup() {
background(255);
size(1000, 800);
fill(#00FF00, 255);
x = width / 2;
y = height / 2;
}
void draw() {
background(255);
circle(x, y, 200);
}
void keyPressed(){
if(key == 'a'){
x -= 2;
}else if(key == 'd'){
x += 2;
}else if(key == 'w'){
y -= 2;
}else if(key == 's'){
y += 2;
}
}
同样也可以用变量 keyPressed 进行判断.
其它事件
keyReleaseed, keyTyped 等