顯示具有 06160326_陳淇彣 標籤的文章。 顯示所有文章
顯示具有 06160326_陳淇彣 標籤的文章。 顯示所有文章

2020年12月28日 星期一

Bill_week16

 今天老師跟我們要討論期末作品的討論,內容是用搖桿來操控其中的作品,而我的作品是做小朋友下樓梯所以要想辦法使用搖桿操縱小朋友左右走動。

2020年12月21日 星期一

Bill_week15

     老師今天幫我們複習一開教的Image 和vector等等的程式。

        

然後做了一個 像彈弓的準備做憤怒鳥的遊戲。


然後加入了減法/除法/加法 讓彈弓的東西可以飛


接下來安裝搖桿及maker uno

開始使用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);
}
程式備份:
PVector user;
PVector Y,v=null;
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);
  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);
}
程式備份:
import processing.serial.*;
Serial myPort;
void setup(){
  size(256,256);
  myPort= new Serial(this,"COM6",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);
}
    













2020年12月14日 星期一

Bill_week14


 今天老師說學校規定要用Teams所以第一堂課老師讓我們登入Teams然後加入課程裡面。


一開始也是跟之前依樣先安裝驅動程式。



在過來,讓我們加上電阻漢城是讓他可以用旋轉的讓他發出不同的聲音。



然後再打程式讓燈可以隨著旋鈕亮起來。

然後寫P語言讓他們兩個連結,讓可以使用旋鈕調整紅條的長度。


影片:https://youtu.be/7MtF_oQn_Uw



影片:https://youtu.be/s8qnnHXHmOc



程式備份區:


void setup(){
  for(int i=2;i<=13;i++){
    pinMode(i,OUTPUT);
  }
  Serial.begin(9600);
}
void loop() {
  int now=analogRead(A0);
  int level = now/4;
  for(int i=2;i<13;i++){
    if(i<level) digitalWrite(i,HIGH);
    else digitalWrite(i,LOW);
  }
  Serial.write(level);
  delay(20);
}


void setup(){
  for(int i=2;i<=13;i++){
    pinMode(i,OUTPUT);
  }
  Serial.begin(9600);
}
void loop() {
  int now=analogRead(A0);
  int level = now/4;
  for(int i=2;i<13;i++){
    if(i<level) digitalWrite(i,HIGH);
    else digitalWrite(i,LOW);
  }
  Serial.write(level);
  delay(20);
}
https://youtu.be/7MtF_oQn_Uw
https://youtu.be/s8qnnHXHmOc












2020年12月7日 星期一

Bill_week13

 一開始老師先教我們從做安裝MakerUno的東西,先安裝裝置。


再來把老師示範的程式碼打上去


接下來打程式,讓他沒有聲音


使用P語言來做東西,按下按鈕即可變成紅色的。


老師教我們寫網路程式,連線到老師那邊就會有顏色亮燈。


在前面黑板上投影機就會顯示:









程式備份:

import processing.serial.*;
Serial myPort;
void setup(){
  size(300,200);
  myPort = new Serial(this,"COM6", 9600);
}
int button=0;
void draw(){
  if(myPort.available()>0){
    int now = myPort.read();
    println("現在你讀的是:"+now);
    if(now=='1')button=1;
    else button=0;
  }
  if(button==1)background(255,0,0);
  else background(255);
}











2020年11月30日 星期一

Bill_week12

 
今天老師讓我們做 MAKER UNO
先確認他能夠連結,並且選COM6



定且搜尋MAKER UNO Git Hub

去搜尋範例程式碼





先貼上範例程式,讓他發出馬力歐的聲音



接下來開一個新檔案,

並且讓裝置發出DO、MI、SO的聲音。

左邊是預設程式,右邊是心打得程式。



加了一個按按鈕就可以發出聲音的步驟。



增加了使用P語言的程式,一邊用來接收一邊用來傳送,現在就可以使用滑鼠點擊來發出聲音,按下滑鼠左鍵發出SO的音樂。


加入了打數字鍵1.3.5可以發出聲音




加入多音符從Do到Si

(老師的Si打成Ti了)







最終程式備份:

Arduino

#define Do 523
#define Re 587
#define Mi 659
#define Fa 698
#define So 784
#define La 880
#define Si 988

void setup(){
  Serial.begin(9600);
  pinMode(2, INPUT_PULLUP);
  pinMode(8, OUTPUT);
  tone(8,Do);
  delay(1000);
  tone(8,Mi);
  delay(1000);
  tone(8,So);
  delay(1000);
  noTone(8);
}

void loop(){
  while(Serial.available()>0){
    int now=Serial.read();
    if(now=='1')  tone(8,Do);
    if(now=='2')  tone(8,Re);
    if(now=='3')  tone(8,Mi);
    if(now=='4')  tone(8,Fa);
    if(now=='5')  tone(8,So);
    if(now=='6')  tone(8,La);
    if(now=='7')  tone(8,Si);
    if(now=='0')  noTone(8);
  }
}

P語言

import processing.serial.*;

Serial myPort;
void setup() 
{
  size(200, 200);
  myPort = new Serial(this,"COM6", 9600);
}
void draw() {
  
}
void keyPressed(){
  if(key=='1') myPort.write("1");
  if(key=='2') myPort.write("2");
  if(key=='3') myPort.write("3");
  if(key=='4') myPort.write("4");
  if(key=='5') myPort.write("5");
  if(key=='6') myPort.write("6");
  if(key=='7') myPort.write("7");
}
void keyReleased(){
  myPort.write("0");
}
void mousePressed(){
  myPort.write("1");
}












2020年11月23日 星期一

2020年11月16日 星期一

Bill_week10

今天老師讓我們作其中報告,期中成績占10%(拿網誌的寫作狀況來評分)期末成績占40%期中作品佔40%,期中作業的繳交日期到11周(之後補教也可以)






https://hackmd.io/@NrgG4-TCS42pma6IfQW84A/rkR_9r4Qe?type=slide#/21

程式備份:PImage img1,img2,img3,img4,img5,img6,img7;

void setup(){

  size(400,500);

  img1=loadImage("start1.png");

  img2=loadImage("win.png");

  img3=loadImage("lose.png");

  img4=loadImage("player2.png");

  img5=loadImage("normal.png");

  img6=loadImage("nail.png");

  img7=loadImage("wall.png");

  for(int i=0;i<10;i++){

    boardX[i]=random(0,300);

    boardY[i]=i*50;

  }

}

int stage=0,health=3,timer=1800;

float x=200,y=200,vx=0;

boolean kidOnBoard=true;

void draw(){

  background(0);

  if(stage==0){

    background(#9B5203);

    noFill();rect(190,320,80,40);

    image(img1,170,280,120,120);

    if(mousePressed&&mouseX>190&&mouseX<270&&mouseY>320&&mouseY<360)stage=1;

  }else if(stage==1){

    image(img4,x-15,y-25,30,50);

    x+= vx;

    if(y>520||y<0){

      health--;

      println(health);

      x=200;y=200;

    }

    

    if(health==0)stage=3;

    if(x<35)x=36;

    if(x>365)x=364;

    for(int i=0;i<10;i++){

      image(img5,boardX[i],boardY[i],boardW,20);

      boardY[i]--;

      if(boardY[i]<0){

        boardY[i]=500;

        boardX[i]=random(0,300);

      }

    }

    image(img6,0,0,500,20);

    image(img7,0,0,20,500);

    image(img7,380,0,20,500);

    textSize(25);fill(#FFFF00);text("health:"+health,240,50);

    timer--;

    textSize(30);fill(#FF0000);text(timer/60,200,50);

    if(timer==0)stage=2;

    

    fill(255);kidOnBoard=testKidOnBoard();

  

    if(kidOnBoard)y--;

    else y+=2;

  

  }else if(stage==2){

    image(img2,0,0,400,500);      

  }else if(stage==3){

    image(img3,0,0,400,500);

  }

}

void keyPressed(){

  if(keyCode==LEFT)vx=-2;

  if(keyCode==RIGHT)vx=+2;

}

void keyReleased(){

  vx=0;

}

float[]boardX=new float[10];

float[]boardY=new float[10];

float boardW=100;

boolean testKidOnBoard(){

  for(int i=0;i<10;i++){

  if(boardX[i]<x && x<boardX[i]+boardW){

    if(boardY[i]-25<=y && y<=boardY[i]){

      y=boardY[i]-25;

      return true;

    }

  }

}

return false;

}

  



PImage img1,img2,img3,img4,img5,img6,img7,img8,img9;
void setup(){
  size(400,500);
  img1=loadImage("start1.png");
  img2=loadImage("win.png");
  img3=loadImage("lose.png");
  img4=loadImage("player2.png");
  img5=loadImage("normal.png");
  img6=loadImage("nail.png");
  img7=loadImage("wall.png");
  img8=loadImage("left");
  img9=loadImage("right");
  
  for(int i=0;i<10;i++){
    boardX[i]=random(0,300);
    boardY[i]=i*50;
  }
}
int stage=0,health=3,timer=1800;
float x=200,y=200,vx=0;
boolean kidOnBoard=true;
void draw(){
  background(0);
  if(stage==0){
    background(#9B5203);
    noFill();rect(190,320,80,40);
    image(img1,170,280,120,120);
    if(mousePressed&&mouseX>190&&mouseX<270&&mouseY>320&&mouseY<360)stage=1;
  }else if(stage==1){
    image(img4,x-15,y-25,30,50);
    x+= vx;
    if(y>520||y<0){
      health--;
      println(health);
      x=200;y=200;
    }
    
    if(health==0)stage=3;
    if(x<35)x=36;
    if(x>365)x=364;
    for(int i=0;i<10;i++){
      image(img5,boardX[i],boardY[i],boardW,20);
      boardY[i]--;
      if(boardY[i]<0){
        boardY[i]=500;
        boardX[i]=random(0,300);
      }
    }
    image(img6,0,0,500,20);
    image(img7,0,0,20,500);
    image(img7,380,0,20,500);
    textSize(25);fill(#FFFF00);text("health:"+health,240,50);
    timer--;
    textSize(30);fill(#FF0000);text(timer/60,200,50);
    if(timer==0)stage=2;
    
    fill(255);kidOnBoard=testKidOnBoard();
  
    if(kidOnBoard)y--;
    else y+=2;
  
  }else if(stage==2){
    image(img2,0,0,400,500);      
  }else if(stage==3){
    image(img3,0,0,400,500);
  }
}


void keyPressed(){
  if(keyCode==LEFT)vx=-3;
  if(keyCode==RIGHT)vx=3;
}
void keyReleased(){
  
    vx=0;
  
}
float[]boardX=new float[10];
float[]boardY=new float[10];
float boardW=100;
boolean testKidOnBoard(){
  for(int i=0;i<10;i++){
  if(boardX[i]<x && x<boardX[i]+boardW){
    if(boardY[i]-25<=y && y<=boardY[i]){
      y=boardY[i]-25;
      return true;
    }
  }
}
return false;
}
  

2020年11月2日 星期一

2020年10月26日 星期一

Bill_week07

 老師今天教我們用點畫圓形的角度,並且用到sin和cos的函數。

現在改成除以1所以變成一個圓


變成三角形

程式:

size(500,500);

beginShape();///開始

for(int angle=0;angle<360;angle+=120)

{

   float angle2 = radians(angle);///弧度

   float x = 100+cos( angle2 ) * 50;

   float y = 100+sin( angle2 ) * 50;

   vertex(x,y);

   //ellipse( x, y, 2, 2);

}

endShape(CLOSE);


除以45變成菱形


加入滑鼠控制


可以用滑鼠控制三角形滑動
不清,會有殘影
清了,會乾淨


1hr=60min,1min=60sec 1sec=60frame
frameCount:第幾個frame
角度有兩種:degree度(360度的世界)
sin()cos()用radians弧度/徑度(PI世界)


void setup(){
  
  size(500,500);
}
void draw(){
  beginShape();
  for(int angle=0; angle<360;angle+=120){
    float angle2 = radians(angle+frameCount);
    float x = mouseX+cos(angle2)*100;
    float y = mouseY+sin(angle2)*100;
    vertex(x,y);//ellipse(x,y,2,2);
  }
endShape(CLOSE);
}







































2020年10月19日 星期一

Bill_week06

老師上課剛開始的時候介紹了陣列可以做成動畫,從上面移動到左下方。 





老師教我們打了一個hello並且填上顏色。



換了一個位置並且用黑色框框框起來。









老師教我們用陣列做出一堆方塊框框

老師教我們用圖片放在陣列裡面


加入了滑鼠點擊然後點擊圖示消除圖示
\










程式備份:

int [][]A={  {2,2,2,2,},
             {0,1,1,1},
             {0,1,1,1},
             {2,2,2,2,} };
PImage bird, pig;
void mousePressed(){
  int i=int (mouseY/100);
  int j=int (mouseX/100);
  A[i][j]=0;
}  
void setup(){
  size(400,400);
  bird=loadImage("bird.png");
  pig =loadImage("pig.png");
}
void draw(){
  background(0);
  for(int i=0; i<4;i++){
    for(int j=0;j<4;j++){
    if(A[i][j]==1)image(bird, j*100,i*100,100,100);
    if(A[i][j]==2)image(pig,  j*100,i*100,100,100);
   }
  }
}


































2020年10月12日 星期一

Bill_week05




老師今天教我們怎麼做水果忍者

先去網頁上下載水果忍者的圖片然後做去背的動作,之後就做出一個程式可以嗅出圖檔。


接下來加入了重力,讓他有拋物線的感覺




















程式碼:

 PImage img;

float x=100,y=500,vx=3,vy=-30;

int fruitDie=0; 

void setup(){

  size(500,500);

  img = loadImage("fruit.png");

}

void draw(){

  background(0);

  image(img,x,y,100,100);

  x += vx;

  y +=vy;

  vy +=0.98;

  if(y>500) fruitDie=1;

  if(x<mouseX && mouseX<x+100 && y<mouseY && mouseY<y+100) fruitDie=1;

  stroke(255);line(mouseX,mouseY,pmouseX,pmouseY);

  if(fruitDie==1){

    if(frameCount%2==0){

      x=random(250);y=500; vx=random(2,3);vy=-random(28,32);

  }else{

    x=random(250,500);y=500; vx=-random(2,3);vy=-random(28,32);

  }

  fruitDie=0;

 }

}