2019年9月26日 星期四

week03_寶欸學習筆記

1.畫圖(一筆畫)


程式碼:
void setup(){

  size(600,400);
}
void draw(){

    line(mouseX,mouseY,pmouseX,pmouseY);
}

2.按左鍵畫圖

程式碼:
void setup(){

  size(600,400);
}
void draw(){

  if(mousePressed && mouseButton==LEFT){
    line(mouseX,mouseY,pmouseX,pmouseY);
  }
}


3.老師示範程式碼(按左鍵變黑的打卡機)
程式碼:
PImage imgBG;//for background()
int [][] table = new int[80][10];
void setup(){
  size(711,377);
  imgBG=loadImage("card.jpg");
}
void draw(){
  background(imgBG);
  int nowI=int((mouseX-33)/8.18);
  int nowJ=int((mouseY-107)/23);//index in table[][]
  if(mousePressed && mouseButton==LEFT && nowJ>=0 && nowI>=0 && nowJ<10&& nowI<80){
    table[nowI][nowJ]=1;
  }else if(mousePressed && mouseButton==RIGHT && nowJ>=0 && nowI>=0 && nowJ<10&& nowI<80){
    table[nowI][nowJ]=0;
  }
  for(int i=0;i<80;i++){
    for(int j=0;j<10;j++){
      fill(0);
      if( table[i][j]==1 ) rect( 33+i*8.18, 107+j*23, 4,9);
    }
  }
}


4.按數字鍵換畫筆顏色:

程式碼:
void setup(){

  size(600,400);
}

void draw(){

  if (key == '1')  stroke(255,0,0);///按1畫紅色
  if (key == '2')  stroke(0,255,0);///按2畫綠色
  if (key == '3')  stroke(0,0,255);///按3畫蘭色
  if(mousePressed && mouseButton==LEFT){
    line(mouseX,mouseY,pmouseX,pmouseY);
  }

}

5.加入設計排版,在左邊選顏色粗細

void setup(){

  size(600,400);
  fill(255,0,0);rect(0,0,50,50);
  fill(255,255,0);rect(0,50,50,50);
  fill(0,255,0);rect(0,100,50,50);
  fill(0,255,255);rect(0,150,50,50);
  fill(0,0,255);rect(0,200,50,50);
  line(25,250,25-7,400);
  line(25,250,25+7,400);

}

void draw(){

  if(mouseX<50 && mousePressed){
    if(mouseY<50) stroke(255,0,0);
    else if(mouseY<100) stroke(255,255,0);
    else if(mouseY<150) stroke(0,255,0);
    else if(mouseY<200) stroke(0,255,255);
    else if(mouseY<250) stroke(0,0,255);
    else {
      strokeWeight((mouseY-250)/10);
    }
  }
  if(mouseX>50 && mousePressed){
    line(pmouseX,pmouseY,mouseX,mouseY);
  }

}

6.按上下左右鍵畫線

void setup(){

  size(600,400);
  fill(255,0,0);rect(0,0,50,50);
  fill(255,255,0);rect(0,50,50,50);
  fill(0,255,0);rect(0,100,50,50);
  fill(0,255,255);rect(0,150,50,50);
  fill(0,0,255);rect(0,200,50,50);
  line(25,250,25-7,400);
  line(25,250,25+7,400);
  
}

void draw(){
  
}
void mousePressed(){

  if(mouseX<50 && mousePressed){
    if(mouseY<50) stroke(255,0,0);
    else if(mouseY<100) stroke(255,255,0);
    else if(mouseY<150) stroke(0,255,0);
    else if(mouseY<200) stroke(0,255,255);
    else if(mouseY<250) stroke(0,0,255);
    else {
      strokeWeight((mouseY-250)/10);
    }
  }
}
void mouseDragged(){

  if(mouseX>50 && mousePressed){
    line(pmouseX,pmouseY,mouseX,mouseY);
  }
}
void keyPressed(){

  if(key=='1') stroke(255,0,0);
  if(keyCode==UP) line(300,200,300,0);
  if(keyCode==DOWN) line(300,200,300,400);
  if(keyCode==LEFT) line(300,200,0,200);
  if(keyCode==RIGHT) line(300,200,600,200);
}

///ctrl+shift+C  複製成HTML



沒有留言:

張貼留言

alanhc 互動技術-week17 [final]

回顧這學期的作品:  期中作業:LANDING:PLANET 賣點&特點: 炫麗的特效 物理(星球重力及降落)及粒子系統(噴射) 世界地圖可根據視角縮放 困難點: 重寫3次最終改寫成物件導向的CLASS寫法...