2020/12/14
(一) PVector 解釋
1. 以前: float 宣告物件 x,y
2. 現在: 用PVector 把x,y 涵蓋進去
(一) PVector 實作 (angry bird)
1.做出線和點
PVector user,arrow;
void setup(){
size(600,400);
user = new PVector(100,300);
arrow = new PVector(100,300);
}
void draw(){
background(255);
stroke(#FFB366);
line(user.x,user.y,arrow.x,arrow.y);
textSize(40);
fill(255,0,0);
text("Y",arrow.x,arrow.y);
fill(#3CB371);
ellipse(user.x,user.y,20,20);
}
void mouseDragged(){
user.x=mouseX;
user.y=mouseY;
}
2.球反彈彈走
PVector user,arrow;
PVector fly=null;
void setup(){
size(600,400);
user = new PVector(100,300);
arrow = new PVector(100,300);
}
void draw(){
background(255);
stroke(#FFB366);
line(user.x,user.y,arrow.x,arrow.y);
textSize(40);
fill(255,0,0);
text("Y",arrow.x,arrow.y);
fill(#3CB371);
ellipse(user.x,user.y,20,20);
if(fly!=null) user.add(fly);
}
void mouseDragged(){
user.x=mouseX;
user.y=mouseY;
}
void mouseReleased(){
PVector diff= PVector.sub(arrow,user);
fly = diff.div(10);
}
3.會往下墜
PVector user,arrow;
PVector fly=null;
void setup(){
size(600,400);
user = new PVector(100,300);
arrow = new PVector(100,300);
}
void draw(){
background(255);
stroke(#FFB366);
if(mousePressed)
line(user.x,user.y,arrow.x,arrow.y);
textSize(40);
fill(255,0,0);
text("Y",arrow.x,arrow.y);
fill(#3CB371);
ellipse(user.x,user.y,20,20);
if(fly!=null) {
fly.y+=0.98;
user.add(fly);
}
}
void mouseDragged(){
user.x=mouseX;
user.y=mouseY;
}
void mouseReleased(){
PVector diff= PVector.sub(arrow,user);
fly = diff.div(4);
}
(一) MakerUno
void setup() {
pinMode(2,INPUT_PULLUP);
Serial.begin(9600);
}
void loop() {
int x = analogRead(A0);
int y = analogRead(A1);
int sw = digitalRead(2);
/*
Serial.write(x);
Serial.write('+');
Serial.write(y);
Serial.write('+');
Serial.write(sw);
Serial.write(' ');*/
Serial.write(x/4);
Serial.write(y/4);
Serial.write(sw);
delay(20);
}
for processing:
import processing.serial.*;
Serial myPort;
void setup(){
size(256,256);
myPort = new Serial(this,"COM6",9600);
}
int ballx=0,bally=0;
void draw(){
background(255);
if(myPort.available()>3){
int x = myPort.read();
int y = myPort.read();
int sw= myPort.read();
ballx = x;
bally = y;
}
fill(0);
ellipse(ballx,bally,15,15);
}




沒有留言:
張貼留言