2021年11月15日 星期一

week06

 這周第一堂課我們一開始先學用text來印出文字


textSize是調整字的大小
再用text就可以印出文字
之後我們再把程式改成可以互動的

加上void setup()跟void draw()

再來把text裡改成Time+frameCount,顯示的文字就會變成Time:過了幾個frame

把frame/60就是1秒鐘 但越跑越久就會有誤差
下面millis就是準確的1秒鐘

如果使用hour()+":"+minute()+":"+second()就可以顯示現在時間

把程式改成中文,會發現他無法顯示出來

使用PFont.list()可以列出電腦內所有的字型

然後再用PFont就可以讓我們寫出中文



使用mousePressed就可以讓字體在滑鼠按下之後變成微軟正黑體


之後我們教了String,用String hh=nf(hour(),2);就可以把hh設呈現在時間的幾點mm就是幾分ss
就是幾秒


用now代表現在時間的總秒數
再用next代表下課時間的總秒數
最後再用next-now就會是從現在到下課的剩餘時間了












把remain/60/60就會變成小時
remain/60%60就會變成分鐘
remain%60就會變成秒
這樣第四行就會把剩餘的時間轉換成小時:分鐘:秒


使用PImage可以把圖片秀出來
PImage [] img=new PImage[10];
void setup(){
  size(1120,450);
  for(int i=0;i<10;i++)img[i]=loadImage(i+".png");
}
void draw(){
  for(int i=0;i<10;i++){
    int x=(i%5)*224,y=int(i/5)*225;
    image(img[i],x,y);
  }
}





//Q: 能不能改用漂亮的圖片, 來顯示數字
//(1) 在 images.google.com 找到10張圖 0...9
//    ex. IconsPng Golden Number 1 Icons PNG
//(2) 存在我們的專案目錄,檔名: 0.png ~ 9.png
//   使用陣列讀進來
PImage [] img = new PImage[10];//0...9
PFont font;
void setup(){
  //size(224*5,225*2);
  size(  1120, 450  );//把全部的圖,都秀出來
  for(int i=0; i<10; i++) img[i]=loadImage(i+".png");
  fill(255);
  font = createFont("標楷體",80);
  textFont(font);
}
void draw(){
  background(#075BB2);
  String hh=nf(hour(),2);
  String mm=nf(minute(),2);
  String ss=nf(second(),2);
  text("現在:"+hh+":"+mm+":"+ss, 50,100);
  text("下課:15:40:00", 50,200);
  
  int now = hour()*60*60 + minute()*60 + second();//總秒數
  int next = 16   *60*60 + 40      *60 + 0;//總秒數
  int remain = next-now;//剩下的時間 (秒數來算)
  if(remain<0) remain += 24*60*60;
  text("剩下:"+remain, 50,300);
  hh = nf(remain/60/60%60, 2);
  mm = nf(remain/60%60, 2);
  ss = nf(remain%60, 2);
  text("剩下:"+hh+":"+mm+":"+ss, 50,400);
  int x=800;
  while(remain>0){
    int n = remain%10;
    remain = remain / 10;
    image( img[n], x,100,100,100);
    x-=100;
  }
}





沒有留言:

張貼留言