2020年12月21日 星期一

week15-鬼滅吃便當的時候很吵

一開始教了把圖片放進去,有更以前的寫法不太一樣


再來教拉憤怒鳥彈弓
再來拉球會飛出去
接下來教可以用搖桿畫東西

andiuio程式碼
void setup() {
  // put your setup code here, to run once:
  pinMode(2, INPUT_PULLUP);
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  int x = analogRead(A0);
  int y = analogRead(A1);
  int sw= digitalRead(2);

  Serial.write(x/4);
  Serial.write(y/4);
  Serial.write(sw);
  delay(20);
}
接下來可以用滑桿拉球
processing程式碼
import processing.serial.*;
Serial myPort;
PVector user;//1.外面宣告,setup()及 draw()都看的到
PVector Y, v=null;//Y:彈弓, v:飛行速度
void setup(){
  size(600,400);
  myPort = new Serial(this, "COM3", 9600);
  user = new PVector(100,300);
  Y = new PVector(100,300);
}
void draw(){
  background(255);
  while(myPort.available()>=3){
    int x= myPort.read();
    int y= myPort.read();
    int sw= myPort.read();
    user.x = 100+x-128;
    user.y = 100+y-128;
  }
  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);
    v.y+=0.98;  
  }
}




12/21

 使用PVector叫出圖形

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;
PVector Y;
void setup(){
   size(600,400);
   user = new PVector(100,300);
   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);
}
void mouseDragged(){
  user.x=mouseX;
  user.y=mouseY;
}
void mouseReleased(){
    
}




𝔍𝔒𝔗𝔇-week15

 今日進度:

1.學習用PVector代替定義多個座標

2.學習應用PVector的座標

3.學習如何應用PVector製作憤怒鳥

4.makeuno回傳座標值

1.程式碼:

size(600,600);

PImage img=loadImage("img.jpg");

PVector user=new PVector(10,20,0);

PVector user2=new PVector(30,40,50);

image(img,0,0);

print("user's="+user.x);

println(" user2's="+user2.x);

執行結果:


2.程式碼:

PVector user;

void setup()

{

  size(600,600);

  user=new PVector(10, 20);

}

void draw()

{

  background(255);

  ellipse(user.x,user.y,20,20);

}


執行結果:


3.程式碼:

PVector user;

PVector Y,v=null;

void setup()

{

  size(600,600);

  user=new PVector(100, 300);

  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);

  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);

}

執行結果:


4.程式碼:
void setup() 
{
  // put your setup code here, to run once:
  pinMode(2,INPUT_PULLUP);
  Serial.begin(9600);
}

void loop()
{
  // put your main code here, to run repeatedly:
  int x = analogRead(A0);
  int y = analogRead(A1);
  int sw = analogRead(2);
  Serial.write(x);
  Serial.write('+');
  Serial.write(y);
  Serial.write('+');
  Serial.write(sw);
  Serial.write('\n');
  delay(20);
}

執行結果:


5.makeuno程式碼:

void setup() 

{

  // put your setup code here, to run once:

  pinMode(2,INPUT_PULLUP);

  Serial.begin(9600);

}


void loop()

{

  // put your main code here, to run repeatedly:

  int x = analogRead(A0);

  int y = analogRead(A1);

  int sw = analogRead(2);

  Serial.write(x/4);

  Serial.write(y/4);

  Serial.write(sw);

  delay(20);

}

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;

  }

  ellipse(ballX,ballY,10,10);

}


執行結果:



6.程式碼:
import processing.serial.*;
Serial myport;
PVector user;
PVector Y,v=null;
void setup()
{
  size(600,400);
  myport = new Serial(this,"COM6",9600);
  user = new PVector(100,300);
  Y = new PVector(100,300);
}
void draw()
{
  background(255);
  if(myport.available()>=3)
  {
    int x = myport.read();
    int y = myport.read();
    int sw = myport.read();
    user.x = 100+x-128;
    user.y = 900+y-128;
  }
  textSize(40);
  fill(255,0,0); text("Y",Y.x,Y.y);
  fill(255); ellipse(user.x,user.y,20,20);
   if(v!=null)
   {
    user.add(v);
    v.y+=9.8;
   }
}
執行結果:



WEEK15

 

憤怒鳥雛形
Arduino 程式碼

void setup() {

    // put your setup code here, to run once:

    pinMode(2, INPUT_PULLUP);

    Serial.begin(9600);

}


void loop() {

  // put your main code here, to run repeatedly:

  int x = analogRead(A0);

  int y = analogRead(A1);

  int sw = digitalRead(2);


  Serial.write(x/4);

  Serial.write(y/4);

  Serial.write(sw);

   delay(20);

}

Processing 程式碼

import  processing.serial.*;

Serial myPort;

PVector user;

PVector Y,v=null;

 void setup(){

   size(600,400);

   myPort = new Serial(this,"COM5",9600);

   user = new PVector(100,300);

   Y = new PVector(100,300);

 }

 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();

     user.x = 100+x-128;

     user.y = 300+y-128;

   }

  textSize(40);

  fill(255,0,0); text("Y",Y.x,Y.y);

  fill(255);

  ellipse(user.x, user.y, 20,20);

  if(v!=null){

    user.add(v);

    v.y+=0.98;

  }

 }


丹ㄉ憤怒鳥 很怒ㄛ

 我們今天要來做憤怒鳥

用PVector

首先我們先弄出一張img

然後再新建檔案
弄出一顆球球
再來我們弄出一個點Y

利用mouse release 我們可以把球球射出去了

然後我們開啟arduino
讓他可以感應到我們的搖桿

(移動搖桿後)

上下左右測試成功後 再來我們就可以用搖桿在processing畫圖了



week 15

 憤怒鳥

Processing

PVector user;

PVector Y, v=null;

void setup(){

  size(600, 400);

  user = new PVector(100, 300);//(2)只在setu

  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);

  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);

}

arduino

void setup() {

  // put your setup code here, to run once:

  pinMode(2,INPUT_PULLUP);

  Serial.begin(9600);

}


void loop() {

  // put your main code here, to run repeatedly:

  int x=analogRead(A0);

  int y=analogRead(A1);

  int sw=digitalRead(2);


  Serial.write(x/4);

  Serial.write(y/4);

  Serial.write(sw);

  delay(20);  

}

本周本週本洲

[ 印圖片 ]

 //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 userX=new PVector(10,20,0);

PVector user2X=new PVector(30,40,0);

==============================================================

[ 做一顆球 ]

PVector user;//外面宣告,setup()和draw()都看得到

void setup(){

  size(600,600);

  user = new PVector(10, 20);

}

//只在setup()new一次

//以前的音樂 Minim minim = new Minim(this)

//以前的UDP udp = new UDP(this, "6000")

;void draw(){

  background(255);

  ellipse(user.x, user.y,20,20);//用他的值

}

==============================================================

[ 做個彈弓 ]

[ 可以彈彈 ]

PVector user;//外面宣告,setup()和draw()都看得到

PVector Y, v=null;

void setup(){

  size(600,400);

  user = new PVector(100, 300);//只在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);//用他的值

  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);

  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(' ');

  delay(20);

}



==============================================================

[ joystcik ]

[arduino]

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/4);

  Serial.write(y/4);

  Serial.write(sw);

  delay(20);

}

[processing]

import processing.serial.*;

Serial myPort;

void setup(){

  size(256,256);

  myPort = new Serial(this, "COM5",9600);

}


==============================================================