2020年12月21日 星期一

❀week15

 試用PV

程式碼:
//int a=10;
size(600,600);
PImage img=loadImage("img.jpg");
PVector pt=new PVector(10,20,0);
image(img, 0,0);
println(pt.x);
//以前要用的時候
float userX=10,userY=20,userZ=0;
float user2X=30,user2Y=40,user2Z=0;
//現在可以用物件來讓他有條理
PVector user=new PVector(10,20,0);
PVector user2=new PVector(30,40,0);



















有個物件導向能拿來用

程式碼:
PVector user;//(1)外面宣告,setup()及draw()都看得到
void setup(){
  size(600,600);
  user = new PVector(10,20);//(2)只要setup()new一次
}//以前的音樂Minim minim=new Minim(this);
//以前的UDP udp = new UDP(this,"6000");
void draw(){
  background(255);
  ellipse(user.x,user.y,20,20);//(3)用它的值
}













做憤怒鳥拉彈弓的部

第一步:

程式碼:
PVector user;//(1)外面宣告,setup()及draw()都看得到
PVector Y;
void setup(){
  size(600,400);
  user = new PVector(100,300);//(2)只要setup()new一次
  Y=new PVector(100,300);
}
void draw(){
  background(255);
  line(user.x, user.y, Y.x, Y.y);
  textSize(40);
  fill(255,0,0);text("Y",Y.x, Y.y);
  fill(255);ellipse(user.x, user.y,20,20);//(3)用它的值
}
void mouseDragged(){
  user.x=mouseX;
  user.y=mouseY;
}
void mouseReleased(){
  
}




















第二步:

程式碼:
PVector user;//(1)外面宣告,setup()及draw()都看得到
PVector Y,v=null;//Y:彈弓   v:飛行速度
void setup(){
  size(600,400);
  user = new PVector(100,300);//(2)只要setup()new一次
  Y=new PVector(100,300);
}
void draw(){
  background(255);
  line(user.x, user.y, Y.x, Y.y);
  textSize(40);
  fill(255,0,0);text("Y",Y.x, Y.y);
  fill(255);ellipse(user.x, user.y,20,20);//(3)用它的值
  if(v!=null)user.add(v);
}
void mouseDragged(){
  user.x=mouseX;
  user.y=mouseY;
}
void mouseReleased(){
  PVector diff = PVector.sub(Y,user);//減法
  v=diff.div(10);//除法
}







































使用搖桿控制

程式碼:
void setup() {
  pinMode(2,INPUT_PULLUP);// 拉高的Input
  Serial.begin(9600);//開始設定 USB的傳輸速度
}
void loop(){//1000Hz (1000fps)
  int x = analogRead(A0);//0...1023
  int y = analogRead(A1);//0...1023
  int sw = digitalRead(2);//HIGH(放開) or LOW(按下去)

  Serial.write(x);
  Serial.write('+');
  Serial.write(y);
  Serial.write('+');
  Serial.write(sw);
  Serial.write(' ');
  delay(20);//1000ms/20ms=>850fps,變慢了
}






















程式碼:
import processing.serial.*;
Serial myPort;
void setup(){
  size(256,256);
  myPort = new Serial(this,"COM5",9600);
}
int ballX=0, ballY=0;
void draw(){
  if(myPort.available()>=3){
    int x = myPort.read();
    int y = myPort.read();
    int sw = myPort.read();
    ballX= x;
    ballY= y;
}
ellipse(ballX,ballY,10,10);
}





沒有留言:

張貼留言