顯示具有 03160153_顏其威 標籤的文章。 顯示所有文章
顯示具有 03160153_顏其威 標籤的文章。 顯示所有文章

2018年1月8日 星期一

week17


processing 程式碼

import processing.serial.*;
Serial myPort;
color [] Color1={#558AE3, #F2E820, #73F220},Color2={#21F7FC, #ED22CC, #FAB33F};
color [] fishC=new color[16], fishA=new color[8];
PImage imgRod,imghook;

void setup(){
  size(750,600);
  imgRod=loadImage("Rod.jpg");
  imghook=loadImage("hook.jpg");
  for(int i=0;i<16;i++){
  fishC[i]= Color1[int(random(3))];
  }
  for(int j=0;j<8;j++){
  fishA[j]= Color2[int(random(3))];
  }
  imageMode(CENTER);
  myPort = new Serial(this, "COM7", 115200);
}
float handX=0, handY=0;
boolean handPressed=false;
float a1=0,a2=0;
void draw(){
  while(myPort.available()>0){
    int now=myPort.read(), w=128,x=128,y=128;
    if(now=='w') w = myPort.read();
    if(now=='x') x = myPort.read();
    if(now=='y') y = myPort.read();
    if(x>200) handX+=3;
    if(x<50) handX-=3;
    if(y>200) handY+=3;
    if(y<50) handY-=3;
   
  }
  background(255);
  line(handX-45,handY-70,handX-50,handY+50);
  fill(255); ellipse(350,350,400,400);
  for(int i=0;i<16;i+=2){
    float x1=350+140*cos(PI/8*i+a1),y1=350+140*sin(PI/8*i+a1);
    if(dist(x1,y1,handX-50,handY+50)<25){
      fill(255,0,0);
      if(handPressed=true) fishC[i]=color(255);
    }
    else
    fill(fishC[i]); ellipse(x1,y1,50,50);
   }
 
  for(int i=1;i<16;i+=2){
    float x2=350+160*cos(PI/8*i+a1),y2=350+160*sin(PI/8*i+a1);
     if(dist(x2,y2,handX-50,handY+50)<25){
      fill(255,0,0);
      if(handPressed=true) fishC[i]=color(255);
    }
    else
    fill(fishC[i]); ellipse(x2,y2,50,50);
  }
 
 fill(255); ellipse(350,350,200,200);
  for(int j=0;j<8;j+=2){
    float x3=350+70*cos(PI/4*j+a2),y3=350+70*sin(PI/4*j+a2);
    if(dist(x3,y3,handX-50,handY+50)<25){
      fill(255,0,0);
      if(handPressed=true) fishA[j]=color(255);
    }
    else
    fill(fishA[j]); ellipse(x3,y3,50,50);
  }
 
   for(int j=1;j<8;j+=2){
     float x4=350+50*cos(PI/4*j+a2),y4=350+50*sin(PI/4*j+a2);
     if(dist(x4,y4,handX-50,handY+50)<25){
      fill(255,0,0);
      if(handPressed=true) fishA[j]=color(255);
    }
    else
    fill(fishA[j]); ellipse(x4,y4,50,50);
  }
 
  a1+=radians(-0.3);
  a2+=radians(0.3);
  image(imgRod,handX,handY,150,150);
  image(imghook,handX-50,handY+50,30,30);

}
void mouseMoved(){
  handX=mouseX; handY=mouseY;
}
void mousePressed(){
  handPressed=true;
}
void mouseReleased(){
  handPressed=false;
}

ADR 程式碼

// Arduino pin numbers
const int SW_pin = 2; // digital pin connected to switch output
const int X_pin = 0; // analog pin connected to X output
const int Y_pin = 1; // analog pin connected to Y output

void setup() {
  pinMode(SW_pin, INPUT);
  digitalWrite(SW_pin, HIGH);
  Serial.begin(115200);
}

void loop() {
  Serial.write(digitalRead(2));
  int w=digitalRead(SW_pin);
  int x=analogRead(X_pin);
  int y=analogRead(Y_pin);
  Serial.write('w');
  Serial.write(w);
  Serial.write('x');
  Serial.write(x/4);
  Serial.write('y');
  Serial.write(y/4);
  delay(50);
}

2017年12月25日 星期一

week15

作期末作業
Arduino程式碼

// Arduino pin numbers
const int SW_pin = 2; // digital pin connected to switch output
const int X_pin = 0; // analog pin connected to X output
const int Y_pin = 1; // analog pin connected to Y output

void setup() {
  pinMode(SW_pin, INPUT);
  digitalWrite(SW_pin, HIGH);
  Serial.begin(115200);
}

void loop() {
  int w=digitalRead(SW_pin);
  int x=analogRead(X_pin);
  int y=analogRead(Y_pin);
  Serial.write(w);
  Serial.write(x/4);
  Serial.write(y/4);
  /*
  Serial.print("Switch:  ");
  Serial.print(digitalRead(SW_pin));
  Serial.print("\n");
  Serial.print("X-axis: ");
  Serial.print(analogRead(X_pin));
  Serial.print("\n");
  Serial.print("Y-axis: ");
  Serial.println(analogRead(Y_pin));
  Serial.print("\n\n");*/
  delay(50);
}

Processing程式碼

import processing.serial.*;
Serial myPort;

void setup(){
  size(200,200);
  myPort = new Serial(this, "COM7", 115200);
}
int w, x=128, y=128;
void draw(){
  background(255);
  while(myPort.available() > 0 ){
    w=myPort.read();
    x=myPort.read();
    y=myPort.read();
  }
  ellipse(x,y, 20,20);
}

2017年12月18日 星期一

week14

          定期末作品
 
我的題目是釣魚 ,決定要用搖桿上下左右按一下可以釣起來

2017年12月4日 星期一

week12



// Arduino pin numbers
const int SW_pin = 2; // digital pin connected to switch output
const int X_pin = 0; // analog pin connected to X output
const int Y_pin = 1; // analog pin connected to Y output

void setup() {
  pinMode(SW_pin, INPUT);
  digitalWrite(SW_pin, HIGH);
  Serial.begin(9600);
}

void loop() {
  Serial.print("Switch:  ");
  Serial.print(digitalRead(SW_pin));
  Serial.print("\n");
  Serial.print("X-axis: ");
  Serial.print(analogRead(X_pin));
  Serial.print("\n");
  Serial.print("Y-axis: ");
  Serial.println(analogRead(Y_pin));
  Serial.print("\n\n");
  delay(500);

}

import processing.serial.*;
Serial myPort;
void setup(){
  size(400,400);
  myPort = new Serial(this, "COM7",9600);
}

void draw(){
  if(myPort.available()>0){
  String now = myPort.readString();
  println(now);
   }
}

LED_BLINK 程式碼
// Arduino pin numbers
const int SW_pin = 2; // digital pin connected to switch output
const int X_pin = 0; // analog pin connected to X output
const int Y_pin = 1; // analog pin connected to Y output

void setup() {
  pinMode(SW_pin, INPUT);
  digitalWrite(SW_pin, HIGH);
  Serial.begin(9600);
}

void loop() {
  Serial.write(digitalRead(2));
  delay(500);
}
PROCESSING 程式碼
import processing.serial.*;
Serial myPort;
void setup(){
  size(400,400);
  myPort = new Serial(this, "COM7",9600);
}

void draw(){
  if(myPort.available()>0){
  int pin2=myPort.read();
  println(pin2);
  if(pin2==1)background(255,0,0);
  else background(0,255,0);
   }
}
import processing.serial.*;
Serial myPort;
void setup() {
  size(400, 400);
  myPort = new Serial(this, "COM7", 9600);
}

void draw() {
  if (myPort.available()>0) {
    int pin2=myPort.read();
    int x= myPort.read();
    int y= myPort.read();

    println(pin2);
    if (pin2==1)background(255, 0, 0);
    else background(0, 255, 0);
    ellipse(x, y, 20, 20);
  }
}




2017年11月22日 星期三

2017年11月6日 星期一

week08

color [] Color1={#558AE3, #F2E820, #73F220},Color2={#21F7FC, #ED22CC, #FAB33F};
color [] fishC=new color[16], fishA=new color[8];
PImage imgRod,imghook;

void setup(){
  size(700,700);
  imgRod=loadImage("Rod.jpg");
  imghook=loadImage("hook.jpg");
  for(int i=0;i<16;i++){
  fishC[i]= Color1[int(random(3))];
  }
  for(int j=0;j<8;j++){
  fishA[j]= Color2[int(random(3))];
  }
    imageMode(CENTER);
}
float a1=0,a2=0;
void draw(){
  background(255);
  image(imgRod,mouseX,mouseY,150,150);
  image(imghook,mouseX-50,mouseY+50,30,30);
  line(mouseX-45,mouseY-70,mouseX-50,mouseY+50);
  fill(255); ellipse(350,350,400,400);
  for(int i=0;i<16;i+=2){
    float x1=350+140*cos(PI/8*i+a1),y1=350+140*sin(PI/8*i+a1);
    if(dist(x1,y1,mouseX-50,mouseY+50)<25){
      fill(255,0,0);
      if(mousePressed) fishC[i]=color(255);
    }
    else
    fill(fishC[i]); ellipse(x1,y1,50,50);
   }
 
  for(int i=1;i<16;i+=2){
    float x2=350+160*cos(PI/8*i+a1),y2=350+160*sin(PI/8*i+a1);
     if(dist(x2,y2,mouseX-50,mouseY+50)<25){
      fill(255,0,0);
      if(mousePressed) fishC[i]=color(255);
    }
    else
    fill(fishC[i]); ellipse(x2,y2,50,50);
  }
 
 fill(255); ellipse(350,350,200,200);
  for(int j=0;j<8;j+=2){
    float x3=350+70*cos(PI/4*j+a2),y3=350+70*sin(PI/4*j+a2);
    if(dist(x3,y3,mouseX-50,mouseY+50)<25){
      fill(255,0,0);
      if(mousePressed) fishA[j]=color(255);
    }
    else
    fill(fishA[j]); ellipse(x3,y3,50,50);
  }
 
   for(int j=1;j<8;j+=2){
     float x4=350+50*cos(PI/4*j+a2),y4=350+50*sin(PI/4*j+a2);
     if(dist(x4,y4,mouseX-50,mouseY+50)<25){
      fill(255,0,0);
      if(mousePressed) fishA[j]=color(255);
    }
    else
    fill(fishA[j]); ellipse(x4,y4,50,50);
  }
 
  a1+=radians(-0.3);
  a2+=radians(0.3);

}

2017年10月30日 星期一

week07

釣魚遊戲

void setup(){
  size(500,500);

}
float a1=0,a2=0;////盤子旋轉的速度
void draw(){
  background(255);
  ellipse(250,250,400,400);
  for(int i=0;i<16;i+=2){
  ellipse(250+140*cos(PI/8*i+a1),250+140*sin(PI/8*i+a1),50,50);
   }
  for(int i=1;i<16;i+=2){
  ellipse(250+160*cos(PI/8*i+a1),250+160*sin(PI/8*i+a1),50,50);
  }
  ellipse(250,250,200,200);
  a1+=radians(-0.3);

}
讓中間順時針轉 加上圓圈


void setup(){
  size(500,500);

}
float a1=0,a2=0;
void draw(){
  background(255);
  ellipse(250,250,400,400);
  for(int i=0;i<16;i+=2){
  ellipse(250+140*cos(PI/8*i+a1),250+140*sin(PI/8*i+a1),50,50);
   }
  for(int i=1;i<16;i+=2){
  ellipse(250+160*cos(PI/8*i+a1),250+160*sin(PI/8*i+a1),50,50);
  }
  ellipse(250,250,200,200);
  for(int i=0;i<8;i+=2){
    ellipse(250+70*cos(PI/4*i+a2),250+70*sin(PI/4*i+a2),50,50);
  }
   for(int i=1;i<8;i+=2){
    ellipse(250+50*cos(PI/4*i+a2),250+50*sin(PI/4*i+a2),50,50);
  }
  a1+=radians(-0.3);
  a2+=radians(0.3);

}







2017年10月2日 星期一

week04


加上一堆豬 顯得真正的angry bird

PImage imgBird, imgPig;
void setup(){
  size(800,600);
  imgBird=loadImage("bird.png");
  imgPig=loadImage("ppig.png");
  imageMode(CENTER);
  for(int i=0;i<5;i++){
    for(int j=0;j<4;j++){
      pigx[i][j]=700-i*100; pigy[i][j]=100+j*100; pigAlive[i][j]=true;
    }
 
  }
}
float birdX = 400, birdY = 300;
float birdVX = 0, birdVY = 0;
float birdAX =0, birdAY = 0;
float [][]pigx=new float[5][4];
float [][]pigy=new float[5][4];
boolean [][]pigAlive=new boolean[5][4];
void draw(){
  background(255);
  for(int i=0;i<5;i++){
    for(int j=0;j<4;j++){
      if (dist(pigx[i][j], pigy[i][j], birdX, birdY)<100){
    pigAlive[i][j]=false;
      }
      if(pigAlive[i][j]) image(imgPig, pigx[i][j], pigy[i][j], 100, 100);
    }
  }

  image(imgBird, birdX, birdY, 100, 100);

  line(birdX, birdY, 400,300);
  birdX += birdVX;
  birdY += birdVY;

  if(birdX<50){birdX=50; birdVX = -birdVX;}
  if(birdX>width-50){birdX=width-50; birdVX= -birdVX;}
  if(birdY<50){birdY=50; birdVY = -birdVY;}
  if(birdY>height-50){birdY=height-50; birdVY= -birdVY;}


  birdVX += birdAX;
  birdVY += birdAY;
  birdVX *= 0.995;
  birdVY *= 0.995;
}
void mouseDragged(){
  birdX=mouseX;
  birdY=mouseY;
  birdVX=birdVY=birdAX=birdAY=0;

}
void mouseReleased(){
  birdVX = (400-mouseX)/10.0;
  birdVY = (300-mouseY)/10.0;
  birdAY = 0.98;
}

用程式增加音樂 但新電腦不能用


2017年9月30日 星期六

week03


載入憤怒鳥跟豬的圖片記得要把圖拉進去
圖片需要改成從角落當中心變成圖片中心當中心
imageMode(CENTER);
讓他能像拉彈弓一樣出去需要BIRD的位置加上速度
birdX birdY birdVX birdVY


除了位置速度 還要加上個加速度AX


現在讓bird碰到pig能消失

PImage imgBird,imgPig;

void setup(){
  size(800,600);
  imgBird=loadImage("bird.png");
  imgPig=loadImage("pig.png");
  imageMode(CENTER);
}
float birdX=400,birdY=300,pigX=600,pigY=100;
float birdVX=0, birdVY=0;
float birdAX=0,birdAY=0;
boolean pigAlive=true;
void draw(){
  background(255);
  //ellipse(birdX, birdY, 100,100);
  if(pigAlive)   
  image(imgPig, pigX,pigY,100,100);
  image(imgBird, birdX, birdY,100,100);
    if(dist(pigX,pigY,birdX, birdY)<100){
    pigAlive=false;
  }
  line(birdX, birdY,400,300);
  birdX +=birdVX;
  birdY +=birdVY;
  birdVX +=birdAX;
  birdVY +=birdAY;
}
void mouseDragged(){
  birdX=mouseX;
  birdY=mouseY;
  birdVX=birdVY=birdAX=birdAY=0;
}
void mouseReleased(){
  birdVX = (400-mouseX)/10.0;
  birdVY = (300-mouseY)/10.0;
  birdAY=0.98;
}

在把他加上碰到牆壁會有反彈效果 還有摩擦力會停止

PImage imgBird,imgPig;

void setup(){
  size(800,600);
  imgBird=loadImage("bird.png");
  imgPig=loadImage("pig.png");
  imageMode(CENTER);
}
float birdX=400,birdY=300,pigX=600,pigY=200;
float birdVX=0, birdVY=0;
float birdAX=0,birdAY=0;
boolean pigAlive=true;
void draw(){
  background(255);
  //ellipse(birdX, birdY, 100,100);
  if(pigAlive)   image(imgPig, pigX,pigY,100,100);
  image(imgBird, birdX, birdY,100,100);
    if(dist(pigX,pigY,birdX, birdY)<100){
    pigAlive=false;
  }
  line(birdX, birdY,400,300);
  birdX +=birdVX;
  birdY +=birdVY;
  if(birdX<50){birdX=50; birdVX = -birdVX;}
  if(birdX>width-50){birdX=width-50; birdVX= -birdVX;}////寬度
  if(birdY<50){birdY=50;birdVY= -birdVY;}
  if(birdY>height-50){birdY=height-50;birdVY = -birdVY;}///高度
  ///多於50是因為讓他露出整個圖片出來
  birdVX +=birdAX;
  birdVY +=birdAY;
  birdVX *= 0.997;///這個就是摩擦力
  birdVY *= 0.997;
}
void mouseDragged(){
  birdX=mouseX;
  birdY=mouseY;
  birdVX=birdVY=birdAX=birdAY=0;
}
void mouseReleased(){
  birdVX = (400-mouseX)/10.0;
  birdVY = (300-mouseY)/10.0;
  birdAY=0.98;
}


憤怒鳥的程式碼跟小朋友下樓梯的程式碼很像





2017年9月25日 星期一

Week02


讓滑鼠點及可以改變粗細跟顏色
void setup(){
  size(800,600);
  colorMode(HSB, 100);///HSB飽和度
}
void draw(){
  line(mouseX, mouseY, pmouseX, pmouseY);
}
void mousePressed(){///滑鼠點及才改變
  if(mouseX<100){
    strokeWeight(mouseY/50);
  }
  if(mouseX>700){
    stroke(mouseY/6.0, 100,100);
  }
}

void setup(){
  size(800,600);
  rect(width-100,0, width,height);///設成左右兩個四邊形
  rect(0,0,100,height);
  colorMode(HSB, 100);
}
void draw(){
  if(mousePressed) line(mouseX, mouseY, pmouseX, pmouseY);
}
void mouseDragged(){///滑鼠變成滑動改變
  if(mouseX<100){
    strokeWeight(mouseY/50);
  }
  if(mouseX>width-100){
    stroke(mouseY/6.0, 100,100);
  }
}






用教學的小遊戲的程式碼當參考作一個簡略的遊戲


找一個圖片幫他上背景











2017年9月18日 星期一

Week01

用桌面上processing寫程式 用小畫家畫出線


size 是視窗大小 rect是四邊形(x,y,邊長,邊長)


用滑鼠當小畫家畫圖     pmouse式滑鼠之前的座標

畫出有顏色的線 讓他不要只是單一顏色讓他改變