鼠標響應: mouseX, mouseY 鼠標的坐標
----------------------------------------------
void setup() { size(300,300); smooth(); background(200); } void draw() { fill(255,255,0); rectMode(CENTER); rect(mouseX,mouseY,50,50); }
隨着鼠標的移動畫方塊
-----------------------------------------------------
dist(x1,y1,x2,y2) 計算兩點之間的距離
void setup() { size(300,300); smooth(); } void draw() { background(200); stroke(0); float d = dist(mouseX, mouseY,150,150); strokeWeight(d/15); fill(255); ellipse(150,150,d*2,d); strokeWeight(d/20); fill(255,200,0); ellipse(150,150,d,d); fill(0); noStroke(); ellipse(150,150,d/3,d/3); }
眼睛的大小會隨着鼠標位置改變
------------------------------------------------------------------
pmouseX,pmouseY: 鼠標的上一個坐標點
void setup() { size(300,300); strokeWeight(5); smooth(); stroke(255,0,80,100); background(0); } void draw() { line(mouseX,mouseY,pmouseX,pmouseY); }
畫出鼠標的軌跡
---------------------------------------------------------
鼠標響應事件
void mousePressed(){} 等價於 void draw(){if(mousePressed){}}
void mouseMoved(){}
void mouseDragged(){}
void setup() { size(600,300); smooth(); background(125,0,255,100); } void draw() { if(mousePressed) { stroke(0); fill(255,255,0); ellipse(mouseX,mouseY,25,25); } }
鼠標按下時畫圓,一直按着不放就一直畫圓 不要邊框后更好看些
-------------------------------------------------------------------------------------------
void setup() { size(300,300); smooth(); background(125,0,255,100); } void draw() { } void mouseMoved() { stroke(255,255,0,100); rectMode(CENTER); fill(255,255,0,50); rect(mouseX,mouseY,50,50); } void mouseDragged() { stroke(255,200,0,100); fill(255,100,0,50); ellipse(mouseX,mouseY,50,50); }
鼠標移動畫方,鼠標拖動畫圓
-------------------------------------------------------------
mouseButton 含 LEFT, RIGHT, CENTER
void setup() { size(300,300); smooth(); background(204); rectMode(CENTER); } void draw() { if(mousePressed) { if(mouseButton == LEFT) { fill(255); } else if(mouseButton==CENTER) { fill(0); } else { fill(100); } rect(mouseX,mouseY,50,50); } }
按下鼠標不同鍵顏色不同
--------------------------------------------------------
鍵盤響應:
keyPressed 按鍵響應 void keyPressed(){} 或 void draw(){if(keyPressed){}}
key 特定鍵響應 在keyPressed基礎上加 if(key == 'a')
keyCode 功能鍵響應 包括 ALT, CONTROL, SHIFT,UP,DOWN,LEFT,RIGHT
int x = 150; int y = 150; void setup() { size(300,300); smooth(); background(204); rectMode(CENTER); } void draw() { if(keyPressed && (key == CODED)) { if(keyCode == LEFT) { x--; } else if(keyCode == RIGHT) { x++; } else if(keyCode == UP) { y--; } else if(keyCode == DOWN) { y++; } } ellipse(x,y,50,50); }
---------------------------------------------------------------
隨機:random(10) 生成0-10的任意浮點數
int(random(6,10)), 生成6 7 8 9中任意一個數
void setup() { size(300,300); smooth(); background(255); stroke(0,120); colorMode(HSB,360,100,100); } void draw() { float d = random(50); fill(random(360),100,100,100); ellipse(random(300),random(300),d,d); }
-------------------------------------------------------
限制 constrain(value,min,max); 限制value值在min-max范圍內
int x = 150; int y = 150; void setup() { size(300,300); smooth(); } void draw() { background(127); fill(255); rect(50,50,200,200); fill(127); rect(100,100,100,100); float mx = constrain(mouseX,70,230); float my = constrain(mouseY,70,230); fill(0); ellipse(mx,my,40,40); }