2023年10月19日 星期四

week 06

 

WEEK 06


1.利用最新版processing,在執行視窗上顯現不同字體




2.寫出一個可以進行打字輸入並顯示出來的程式
案Enter可以換行



3.增加字體辨識,可讓程式辨認出a至z的大小寫,可除掉有字體破圖的狀況,但會無法分行

if(key>='A'&&key<='Z')line+=key;
if(key>='a'&&key<='z')line+=key;


4.增加backspace,即可刪除字體的功能,並避免會刪到input字體,且別讓line數值<0
String line="";
void draw()
{
  background(0);
  text("Input: "+line,100,100);
}
void keyPressed()
{
  if(key>='A'&&key<='Z')line+=key;
  if(key>='a'&&key<='z')line+=key;
  if(key==BACKSPACE&&line.length()>0)
  {
    line=line.substring(0,line.length()-1);
  }
}


4-1.下載素材庫範本sound


5.找一個音樂素材並用程式撥放出來


6.用按鍵來撥放指定音效


7.製作出一個按下按鍵、BACKSPACE、ENTER都會發出不同音效的執行視窗




8.製作一個小遊戲,視窗上方會有一個單字下降至玩家(最下方圓圈),玩家要按對應的字元來互動(有反應的話會有紅線連在單字上)



9.加強互動效果,當對單字按到對的按鍵時會對單字進行紅色標記



10.完善遊戲體驗,有多個不同單字隨機出現,並且在打完對應單字時出現下一個不同的單字



完整程式碼:

void setup()

{

  size(400,600);

  textSize(20);

  randomQ();

}

void randomQ()

{

   int i=int(random(QQ.length ));

   Q=QQ[i];

   x=random(300,0);

   y=random(0,100);

}

String[] QQ ={"void","setup","float","string","background","fill","BlueArchive","LeagueOfLegends","StarCraft","WarCraft","Destiny"};

String Q="hello",A="";

float x=100,y=100;

void draw()

{

  background(0);

  fill(#FFFFFF);text(Q,x,y);

  fill(#FF0000);text(A,x,y);

  ellipse(200,550,20,20);

  float dx=(200-x),dy=(550-y),d=sqrt(dx*dx+dy*dy)*3;

  x+=dx/d;

  y+=dy/d;

  if(keyPressed)

  {

     stroke(255,0,0);

     line(200,550,x,y);

  }

}

void keyPressed()

{

  int i=A.length();

  if(key==Q.charAt(i))

  {

     A+=key; 

     if(Q.equals(A))

     {

        randomQ();

        A="";

     }

  }

}





































沒有留言:

張貼留言