顯示具有 08160333_黃建隆 標籤的文章。 顯示所有文章
顯示具有 08160333_黃建隆 標籤的文章。 顯示所有文章

2022年1月17日 星期一

Jain's 互動技術概論筆記#Week15

小朋友下樓梯~終於結束了


import processing.sound.*;

SoundFile soundfile;

SoundFile scare;

PImage imgB;

PImage imgB2;

PImage imgt;

PImage imgp;

PImage imgpl;

PImage imgpr;

float []boardX=new float[9];

float []boardY=new float[9];

float []wallX1=new float[15];

float []wallY1=new float[15];

float []wallX2=new float[15];

float []wallY2=new float[15];

float px;

float py,vx=0, vy=0.2;

float pyn;

int score;

boolean left=false;//左

boolean right=false;//右

int landing=0;

int condition=0;

float rolling=0;

void setup(){

    size(720,540);

    fill(0,0,0);

    textSize(40);

    imgB=loadImage("b1.jpg");

    imgB2=loadImage("b2.png");

    imgt=loadImage("t.png");

    imgp=loadImage("p.png");

    px=random(30,400-40);

    py=random(55,100);

    soundfile=new SoundFile(this,"BGM.mp3");

    scare=new SoundFile(this,"小朋友下樓梯音效.mp3");

    score=0;

    for(int i=0;i<9;i++)

    {

      boardX[i]=random(30,450-14-200);

      boardY[i]=i*45+80;

    }

    for(int i=0;i<15;i++)

    {

      wallX1[i]=0;

      wallY1[i]=i*30+50;

    }

    for(int i=0;i<15;i++)

    {

      wallX2[i]=410;

      wallY2[i]=i*30+50;

    }

  soundfile.play();

  soundfile.loop();

}

void mousePressed() {

  

    if (mouseButton == LEFT&&mouseX>=500&&mouseX<=650&&mouseY>=250&&mouseY<=390){

      condition=1;

        score=0;

    }

   if(condition==1){

    if (mouseButton == LEFT&&mouseX>=500&&mouseX<=650&&mouseY>=400&&mouseY<=490){

      condition=0;

      }

    

  }

}

void keyPressed()

{

  if(keyCode==LEFT)

  { 

    px += -20;

  }

  if(keyCode==RIGHT)

  {

    px += 20; 

  }

}


void draw(){

  if(condition==0){

  background(225);

  rect(10,45,400,450);

  text("PLAY", 500,300);

  text("STOP", 500,400);


  

  }

  else if(condition==1){

    background(225);

    rect(10,45,400,450);

    text("PLAY", 500,300);

    text("STOP", 500,400);

    image(imgp,px-vx,py-vy);

    if(py-vy<495&&py-vy>30) { 

      score+=1;

      text("Score:"+score/60, 450,100);

    }

    else {

      scare.play();

      text("Score:"+score/60+"\n"+"GameOver", 450,100);

      condition=2;

      py=random(55,100);

      }

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

      image(imgB,wallX1[i],wallY1[i]-rolling);

      image(imgB,wallX2[i],wallY2[i]-rolling);

      if(wallY1[i]-rolling<45)

      {

        wallY1[i]+=450;

        wallY2[i]+=450;

      }

    }

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

      image(imgB2,boardX[i],boardY[i]+80-rolling);

      if(boardY[i]-rolling<0){

        boardX[i]=random(15,400-15-95);

        boardY[i]=boardY[i]+400;

        }  

      py += vy; 

      for(int k=0; k<9; k++)

      {

        if(boardX[k] < px && px < boardX[k]+95)

        {

          if(py<boardY[k]+80-rolling && py>boardY[k]+80-rolling-16)

          {

            landing=k;

            py=boardY[k]-26+80-rolling;

          }

        }

      }

      

    } 

  image(imgt,10,45);

  rolling+=1.1; 

  }

  else if(condition==2){

    background(225);

    rect(10,45,400,450);

    text("PLAY", 500,300);

    text("STOP", 500,400);

    text("Score:"+score/60+"\n"+"GameOver", 450,100);

  }

}

2021年11月29日 星期一

Jain's 互動技術概論筆記#Week10

人物行走









利用老師給的程式讓人物行走

期末作品目標: 小朋友下樓梯
參考影片:http://www.gamefz.com/a.asp?id=174






2021年11月22日 星期一

Jain's 互動技術概論筆記#Week09

讓球球(金幣)自由落下~








兩個~











多個!!!

讓球(金幣)到地板&天花板會反彈

滑鼠的紅球碰到黃球會暫停!

用滑鼠的紅球吃掉黃球~

練習布林

丟多一點球~

另一種方法 碰到球他會一直停在原地



碰球讓隨機飄的球消失











讓球變多&加速&變顏色








2021年11月15日 星期一

Jain's 互動技術概論筆記#Week08

 今天教秀字出來







先打字再顏色再調視窗再調字體大小

再來弄個互動的







看起來是沒誰麼變,等等會用到
弄個計時器







計時器每秒更新60個fram 記得清背景
但這樣太快了,把她除60(一秒60個fram)






再來弄個millis 更精準計算時間







利用內建的 hour()、minute()、second()這三個組成時鐘







嘗試寫入中文,會變方格(因為英文字體內沒有中文)







找找所有電腦中的字體







匯入字體







字形切換    
沒按下之前是font1按下之後font2
















字串~






計算到下課還剩多久







修改一下計算方式







用圖片秀數字



2021年11月1日 星期一

Jain's 互動技術概論筆記#Week05

今天來做影片匯入

首先先把video的函示庫下載
之後套用範例(Loop)

 









現在來讀取視訊鏡頭~
恩對我的電腦沒視訊鏡頭
但我有個外接程式 我將它設定橘色~
所以這樣是對的!











新增一行 saveFrame();
把影片擷圖
但是我擷都一樣我就不執行了哈哈!
那接下來就是把剛剛結的圖做成影片
阿我沒擷圖自然是跑不出來~
但還是附上程式碼









來弄個螢幕更新~












 









點擊畫面就會變色~
把影片換顏色
import processing.video.*;
Movie movie;
color [] c = {#F0F0F0,#FFF160,#FFC501,#EE9600,#03001C};
int now=0;
void setup(){
  size(640,480);
  background(#F0F0F0);
  movie=new Movie(this,"launch2.mp4");
  movie.play();
}
void draw(){
  if(movie.available()){
    movie.read();
    image(movie,0,0);
  }
}
void mousePressed(){
  movie.pause();
  loadPixels();
  for(int i=0;i<640*480;i++){
    float bright=brightness(pixels[i]);
    int now=4-int(bright/67);
    pixels[i]=c[now];
  }
  updatePixels();
}



2021年10月25日 星期一

Jain's 互動技術概論筆記#Week04

 1.畫棋盤







阿但是這樣畫太久了
所以要用for迴圈來畫











把它完成
棋盤就完成拉
弄一下棋子的陣列
void setup(){
  size(500,500);
}
int [][]go={
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0}};
void draw(){
  background(253,236,180);
  for(int i=0;i<9;i++){
  line(50+50*i,50,50+50*i,450);
  line(50,50+50*i,450,50+50*i);
  }
}
待會放棋子比較方便
來練習一下左手i右手j
int [][]c={
  {1,0,0},
  {1,0,0},
  {1,0,0}};
void setup(){
  size(300,300);
}
void draw(){
  for(int i=0;i<3;i++){
    for(int j=0;j<3;j++){
      if(c[i][j]==0) fill(128);
      else fill(255,0,0);
      rect(j*100,i*100,100,100);
    }
  }
}

開始下棋!
加入用滑鼠點

將50修改成25
這樣就比較準確

有白旗就要有黑旗阿
左鍵白右鍵黑中間消除

Done~~



another!!
用小圓化大圓

變化





2021年10月18日 星期一

Jain's 互動技術概論筆記#Week03

 今天來讀圖

1.可以用網址讀圖







2.也可以讀取電腦內的圖片
但要先將圖片拉進編譯程式區
再寫黨名.jpg











但大小有點差強人意
可以再draw那邊增加你要這張圖變成多少x多少的圖














多叫一張圖出來跟在滑鼠上











但是疊上去的小圖有背景 BAD
裡用PPT去背


之後調整小圖的中心點位置


要聲音需要加入一個函式











這樣就會有一個背景音拉~











老樣子一個不夠
再新增滑鼠按下去會叫
黃色是原本的背景音
藍色是丘巴卡的RRRR叫聲











再來就是做鋼琴
大二電腦圖學就做過了~