顯示具有 08160201_徐聖淳 標籤的文章。 顯示所有文章
顯示具有 08160201_徐聖淳 標籤的文章。 顯示所有文章

2022年1月17日 星期一

我愛卯咪Week15

 

互動技術概論🎮


期末遊戲Day3(最後的成品啦🎉)

import processing.sound.*;
SoundFile soundfile;//音樂
PImage img,img1,img2,img3,img4,img5,img6,img7,img8,img9,img10,img11,img12,img13,img14,img15,img16,img17;//宣告圖片
int state=0,remainT=0,count=1800,count1=3000,count2=0,count3=0,x=200, y=300,win=0;//點擊的設定
void setup(){
  size(400,600);
  soundfile=new SoundFile(this,"panda.mp3");把音樂放進去
  soundfile.play();
  soundfile.loop();
  img=loadImage("egg.png");
  img1=loadImage("panda1.png");//讀入圖片
                            .
                            .
                            .
  img17=loadImage("panda17.png");
  imageMode(CENTER);
}
void draw(){
  count--;
  count1--;
  if(count==0) {state=1;count1=-1;}//設定點擊事件
  else if(count1==0) {state=3;count=-1;}
  else if(count==900) {state=0;}
  else if(count1==1500) state=2;
  if(win==5) state=10;

  if(count2==0)background(255);
  else background(#D6D4D4);
  //image( img, 0,0);
  image( img ,x,y);
  if(state==0){//餓了
    image( img1 ,x,y);
  }
  if(state==1){//餓死了
    image( img2 ,x,y);
  }
  if(state==2){//玩
    image( img3 ,x,y);
  }
  if(state==3){//無聊死了
    image( img4 ,x,y);
  }
  if(state==4){//吃
    remainT--;
    count3++;
    if(remainT>60){
      image( img5 ,x,y);
    }
    else{
      image( img6 ,x,y);
    }   
  }
  if(state==5){//吃死了
    remainT--;
    if(remainT>60){
      image( img7 ,x,y);
    }
    else{
      image( img8 ,x,y);
    }
  }
  if(state==6){//打球
    count3++;
    remainT--;
    if(remainT>60){
      image( img9 ,x,y);
    }
    else{
      image( img10 ,x,y);
    }
  }
  if(state==7){//吃球
    remainT--;
    if(remainT>60){
      image( img11 ,x,y);
    }
    else{
      image( img12 ,x,y);
    }
  }
  if(state==8){//洗澡
    remainT--;
    if(remainT>60){
      image( img13 ,x,y);
    }
    else{
      image( img14 ,x,y);
    }
  }
  if(state==9){//喝洗澡水
    remainT--;
    if(remainT>60){
      image( img15 ,x,y);
    }
    else{
      image( img16 ,x,y);
    }
  }
  if(state==10){//贏了
    image( img17 ,x,y);
  }
}
void mousePressed(){
  if(mouseX>=90&&mouseX<=160&&mouseX>=90){
    if(mouseY>10*50-25 && mouseY<10*50+50){
      if(count3>0){
        state=5;
        remainT=180;
        count=-1;
        count1=-1;
      }
      else if(state!=4&&state!=1&&state!=3&&state!=5&&state!=7){
        state=4;
        remainT=180;
        count=1800;
        win++;
      }
      else if(state==4){
        state=5;
        remainT=180;
        count=-1;
        count1=-1;
      }
    }
  }
  if(mouseX>=190&&mouseX<=240&&mouseX>=90){
     if(mouseY>10*50-25 && mouseY<10*50+50){
       if(state==0){
         state=7;
         remainT=180;
         count=-1;
         count1=-1;
       }
       else if(state!=1&&state!=3&&state!=5&&state!=7){
         count3++;
         state=6;
         remainT=180;
         count1=3000;
         count2++;
       }
     }
  }
  if(mouseX>=250&&mouseX<=340&&mouseX>=90){
     if(mouseY>10*50-25 && mouseY<10*50+50){
       if(state==0){
         state=9;
         remainT=180;
         count=-1;
         count1=-1;
       }
       else if(state!=1&&state!=3&&state!=5&&state!=7){
         state=8;
         remainT=180;
         count2=0;
         count3=0;
       }
     }
  }
  if(mouseX>0){
     if(mouseY>0 && mouseY<400){
       if(state==1||state==3||state==5||state==7||state==9){
         state=0;
         remainT=0;
         count=1800;
         count1=3000;
         count2=0;
         count3=0;
         x=200;
         y=300;
         win=0;
        }
     }
  }
}

成品

2021年12月27日 星期一

我愛卯咪Week14

 

互動技術概論🎮


期末遊戲Day2
這禮拜開始寫程式,在聽完老師講解連續動圖後,我們寫好連續動圖的程式
PImage img,img1,img2,img3,img4,img5,img6,img7,img8,img9,img10,img11,img12,img13,img14,img15,
img16,img17;///宣告圖片
void setup(){
  size(400,600);
  img=loadImage("egg.png");///讀入圖片
  img1=loadImage("panda1.png");
  img2=loadImage("panda2.png");
  img3=loadImage("panda3.png");
  img4=loadImage("panda4.png");
  img5=loadImage("panda5.png");
  img6=loadImage("panda6.png");
  img7=loadImage("panda7.png");
  img8=loadImage("panda8.png");
  img9=loadImage("panda9.png");
  img10=loadImage("panda10.png");
  img11=loadImage("panda11.png");
  img12=loadImage("panda12.png");
  img13=loadImage("panda13.png");
  img14=loadImage("panda14.png");
  img15=loadImage("panda15.png");
  img16=loadImage("panda16.png");
  img17=loadImage("panda17.png");
  imageMode(CENTER);///圖片置中
}
讀入好照片後就可以處理連續動圖了
PImage img,img1,img2,img3,img4,img5,img6,img7,img8,img9,img10,img11,img12,img13,img14,img15,img16,img17;
int state=0,remainT=0,count=1800,count1=3000,count2=0,count3=0,x=200, y=300,win=0;
void setup(){
  size(400,600);
  img=loadImage("egg.png");
  img1=loadImage("panda1.png");
                    .
                    .
                    .
  imageMode(CENTER);
}
void draw(){
  count--;
  count1--;
  if(count==0) {state=1;count1=-1;}
  else if(count1==0) {state=3;count=-1;}
  else if(count==900) {state=0;}
  else if(count1==1500) state=2;
  if(win==5) state=10;
  if(count2==0)background(255);
  else background(#D6D4D4);
  //image( img, 0,0);
  image( img ,x,y);
  if(state==0){//餓了
    image( img1 ,x,y);
  }
  if(state==1){//餓死了
    image( img2 ,x,y);
  }
  if(state==2){//玩
    image( img3 ,x,y);
  }
  if(state==3){//無聊死了
    image( img4 ,x,y);
  }
  if(state==4){//吃
    remainT--;
    count3++;
    if(remainT>60){
      image( img5 ,x,y);
    }
    else{
      image( img6 ,x,y);
    }   
  }
  if(state==5){//吃死了
    remainT--;
    if(remainT>60){
      image( img7 ,x,y);
    }
    else{
      image( img8 ,x,y);
    }
  }
  if(state==6){//打球
    count3++;
    remainT--;
    if(remainT>60){
      image( img9 ,x,y);
    }
    else{
      image( img10 ,x,y);
    }
  }
  if(state==7){//吃球
    remainT--;
    if(remainT>60){
      image( img11 ,x,y);
    }
    else{
      image( img12 ,x,y);
    }
  }
  if(state==8){//洗澡
    remainT--;
    if(remainT>60){
      image( img13 ,x,y);
    }
    else{
      image( img14 ,x,y);
    }
  }
  if(state==9){//喝洗澡水
    remainT--;
    if(remainT>60){
      image( img15 ,x,y);
    }
    else{
      image( img16 ,x,y);
    }
  }
  if(state==10){//贏了
    image( img17 ,x,y);
  }
}
void mousePressed(){
  if(mouseX>=90&&mouseX<=160&&mouseX>=90){
    if(mouseY>10*50-25 && mouseY<10*50+50){
      if(count3>0){
        state=5;
        remainT=180;
        count=-1;
        count1=-1;
      }
      else if(state!=4&&state!=1&&state!=3&&state!=5&&state!=7){
        state=4;
        remainT=180;
        count=1800;
        win++;
      }
      else if(state==4){
        state=5;
        remainT=180;
        count=-1;
        count1=-1;
      }
    }
  }

圖片已經可以放上去了


這禮拜進度到這,但圖片內容稍改,所以下禮拜還要改一下圖



2021年12月20日 星期一

我愛卯咪Week13

 

互動技術概論🎮


期末遊戲Day1

                一開始我們先製作遊戲需要的圖片素材,因為我們做的是電子雞,所以我選擇了雞蛋為遊戲主機的樣貌,選好基底後,加上遊戲跟活潑的氣息,把原本寫實的雞蛋改成兵分色彩的雞蛋


👇


                做完遊戲機後,我們再把電子機裡的腳色做出來,最後討論出來選擇了熊貓,因為電子雞的行為動畫都是動圖來呈現的,較不是流暢的動畫,所以我也做了不同動作的熊貓圖來製作


👇
👇



因為製圖上花了比較多時間,所以這禮拜進度到這裡






2021年11月29日 星期一

我愛卯咪Week08

 

互動技術概論🎮

期末規劃💡
電子雞養成互動遊戲
藉由選擇想互動的按鍵,如(餵食,遊玩等等)
來讓角色成長




PImage img;
void setup(){
  size(500,500);
  img=loadImage("img.jpg");
  imageMode(CENTER);
}
int a=0, b=0, x=250, y=250;
void draw(){
  background(255);
  //image( img, 0,0);
  image(  img.get(141*a, 211*b, 141,211), x,y);
  if(frameCount%30==0) a = (a+1)%4;
}
void keyPressed(){
  if(keyCode==RIGHT){ b=3; x++; }
  if(keyCode==LEFT) { b=2; x--; }
  if(keyCode==UP) { b=1; y--; }
  if(keyCode==DOWN){ b=0; y++; }
}



2021年11月22日 星期一

我愛卯咪Week07

 

互動技術概論🎮

float x=250,y=0,vx=0,vy=3;
void setup(){
  size(500,600);
}
void draw(){
  background(255);
  ellipse(x,y,50,50);
  y=y+vy;
}


float x=250,y=0,vx=0,vy=3;
float x2=150,y2=50,vx2=0,vy2=2;
void setup(){
  size(500,600);
}
void draw(){
  background(255);
  ellipse(x,y,50,50);
  ellipse(x2,y2,50,50);
  y=y+vy;
  y2=y2+vy2;
}



float []x={250,150,350,350};
float []y={0,50,80,100};
float []vx={0,0,0,0};
float []vy={3,2,2.5,4};
void setup(){
  size(500,600);
}
void draw(){
  background(255);
  for(int i=0;i<4;i++){
    ellipse(x[i],y[i],50,50);
    y[i]=y[i]+vy[i];
  }
}
void draw(){
  background(255);
  for(int i=0;i<4;i++){
    ellipse(x[i],y[i],50,50);
    y[i]=y[i]+vy[i];//vy是速度
    if(y[i]>600)vy[i]=-vy[i];//撞到下方
    if(y[i]<0)vy[i]=-vy[i];//撞到上方
  }
}
void draw(){
  background(255);
  for(int i=0;i<4;i++){
    fill(255,255,0);ellipse(x[i],y[i],50,50);
    if(dist(mouseX,mouseY,x[i],y[i])<=50){
      continue;
    }
    y[i]=y[i]+vy[i];//vy是速度
    if(y[i]>600)vy[i]=-vy[i];//撞到下方
    if(y[i]<0)vy[i]=-vy[i];//撞到上方
  }
  fill(255,0,0);ellipse(mouseX,mouseY,50,50);
}

















2021年11月15日 星期一

我愛卯咪Week06

 

互動技術概論🎮


size(600,600);
fill(255,0,0);
textSize(80);
text("Hello",50,50);

void setup(){
  size(600,600);
  fill(255,0,0);
  textSize(80);
}
void draw(){
  text("Hello",50,100);
}
void draw(){
  background(255);
  text("Time:"+frameCount,50,100);
}
void draw(){
  background(255);//白
  text("Time:"+frameCount/60,50,100);//不準
  text("millis():"+millis()/1000,50,200);//準
}

println(PFont.list() );

PFont myFont;
void setup(){
  size(500,500);
  myFont=createFont("標楷體",100);
  textFont(myFont);
  text("中文",100,100);
}

PFont font1,font2;
void setup(){
  size(500,500);
  font1=createFont("標楷體",100);
  textFont(font1);
  font2=createFont("微軟正黑體 Bold",100);
  text("中文",100,100);
}
void draw(){
  background(0);
  text("中文",100,100);
  if(mousePressed)textFont(font2);
  else textFont(font1);
}
void setup(){
  size(600,600);
  fill(255,0,0);
  textSize(80);
}
void draw(){
  background(255);//白
  String hh=nf(hour(),2);
  String mm=nf(minute(),2);
  String ss=nf(second(),2);
  //printf("%2d:%2d:%2d",hour(),minute(),second());
  text(hh+":"+mm+":"+ss,50,100);//不準
  //text("中文:"+millis()/1000,50,200);//準
}


void setup(){
  size(600,600);
  fill(255);
  textSize(80);
}
void draw(){
  background(#075BB2);
  String hh=nf(hour(),2);
  String mm=nf(minute(),2);
  String ss=nf(second(),2);
  //printf("%2d:%2d:%2d",hour(),minute(),second());
  text("現在:"+hh+":"+mm+":"+ss,50,100);//不準
  text("下課:15:40:00",50,200);
  int now=hour()*60*60+minute()*60+second();
  int next=15*60*60+40*60+0;
  int remain=next-now;
  text("剩下:"+remain,50,300);
  //text("NOW:"+millis()/1000,50,200);//準
}
 hh=nf(remain/60/60,2);
  mm=nf(remain/60%60,2);
  ss=nf(remain%60,2);
  text("剩下:"+hh+":"+mm+":"+ss,50,400);
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);
  }
}
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;
  }
}




























2021年10月25日 星期一

我愛卯咪Week04

 

互動技術概論🎮

畫出棋盤的方法

1.用line畫線 

void setup(){
  size(500,500);
}
void draw(){
  background(253,236,180);
  line(50,50,50,450);
  line(100,50,100,450);
  line(150,50,150,450);
  line(200,50,200,450);
}

2.用for迴圈畫縣

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);
  }
}



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);
     }
  }
}

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,1,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},
  {1,0,0,0,0,0,0,0,0}};
================
void draw(){
              .
              .
              .
  }
  for(int i=0;i<9;i++){
     for(int j=0;j<9;j++){
       if(go[i][j]==1){
         int x=50+50*j,y=50+50*i;
         fill(255);ellipse(x,y,40,40);
       }
     }
  }

for(int i=0;i<9;i++){
     for(int j=0;j<9;j++){
       if(go[i][j]==1){
         int x=50+50*j,y=50+50*i;
         fill(255);ellipse(x,y,40,40);
       }else if(go[i][j]==2){
         int x=50+50*j,y=50+50*i;
         fill(0);ellipse(x,y,40,40);
       }
     }
  }
}
void mousePressed(){
  int j=(mouseX-25)/50;
  int i=(mouseY-25)/50;
  if(mouseButton==LEFT) go[i][j]=1;
  if(mouseButton==RIGHT)go[i][j]=2;
  if(mouseButton==CENTER)go[i][j]=0;
}


void setup(){
  size(500,500);
}
void draw(){
  background(128);
    for(float a=0;a<360;a+=1){
      float x=250+mouseX*cos(radians(a));
      float y=250+mouseY*sin(radians(a));
      ellipse(x,y,mouseX,mouseY);  
  }
}





2021年10月18日 星期一

我愛卯咪Week03

互動技術概論🎮

放入照片的方法

PImage img;
void setup(){
  size(450,450);
  img=loadImage("love.jpg");
  //img=loadImage("https://lineimg.omusic.com.tw/img/album/4711821.jpg?v=20210824150503(網址)");
}
void draw(){
  image(img,0,0);
}

1.輸入照片網址

img=loadImage("網址")

2.丟入照片

(將照片丟入)
(丟入後會顯示這句話,代表成功)



放入第二張照片

PImage img1,img2;
void setup(){
  size(450,450);
  img1=loadImage("love.jpg");
  img2=loadImage("p5.png");
  //img=loadImage("https://lineimg.omusic.com.tw/img/album/4711821.jpg?v=20210824150503(網址)");
}
void draw(){
  image(img1,0,0);
  image(img2,mouseX,mouseY,100,100);
}



若要去背,可以先到PowerPointu移除背景

(點選格式的移除背景)



更改滑鼠在圖片的中心點

1.更改滑鼠的中心點


void draw(){
  image(img1,0,0);
  image(img2,mouseX-50,mouseY-50,100,100);
}

2.用imageMode更改中心點

void draw(){
  imageMode(CORNER);
  image(img1,0,0);
  imageMode(CENTER);
  image(img2,mouseX,mouseY,100,100);
}

放入音檔的方法


import ddf.minim.*;
Minim minim;
AudioPlayer player;
void setup(){
  size(500,500,P3D);
  minim=new Minim(this);
  player=minim.loadFile("groove.mp3");
  player.play();
}

放入第二個音檔

import ddf.minim.*;
Minim minim;
AudioPlayer player,player2;
void setup(){
  size(500,500);
  minim=new Minim(this);
  player=minim.loadFile("groove.mp3");
  player2=minim.loadFile("mu.mp3");
  player2.play();
}
void draw(){
}
void mousePressed(){(當滑鼠按下去的時候,另一個音檔也會同時撥放)
  player.play();
}

鋼琴程式碼🎹

import ddf.minim.*;
Minim minim;
AudioPlayer doo,re,mi,fa,so;
void setup(){
  size(500,100);
  minim=new Minim(this);
  doo=minim.loadFile("do.wav");
  re=minim.loadFile("re.wav");
  mi=minim.loadFile("mi.wav");
  fa=minim.loadFile("fa.wav");
  so=minim.loadFile("so.wav");
}
void keyPressed(){
  if(key=='1'){doo.rewind(); doo.play();}
  if(key=='2'){re.rewind(); re.play();}
  if(key=='3'){mi.rewind(); mi.play();}
  if(key=='4'){fa.rewind(); fa.play();}
  if(key=='5'){so.rewind(); so.play();}
}
void draw(){

}




import ddf.minim.*;
Minim minim;
AudioPlayer doo,re,mi,fa,so;
void setup(){
  size(500,100);
  minim=new Minim(this);
  doo=minim.loadFile("do.wav");
  re=minim.loadFile("re.wav");
  mi=minim.loadFile("mi.wav");
  fa=minim.loadFile("fa.wav");
  so=minim.loadFile("so.wav");
}
void keyPressed(){
  if(key=='1'){doo.rewind(); doo.play();down[0]=1;}
  if(key=='2'){re.rewind(); re.play();down[1]=1;}
  if(key=='3'){mi.rewind(); mi.play();down[2]=1;}
  if(key=='4'){fa.rewind(); fa.play();down[3]=1;}
  if(key=='5'){so.rewind(); so.play();down[4]=1;}
}
void keyReleased(){
  if(key=='1')down[0]=0;
  if(key=='2')down[1]=0;
  if(key=='3')down[2]=0;
  if(key=='4')down[3]=0;
  if(key=='5')down[4]=0;
}
int []down={0,0,0,0,0};
void draw(){
  background(255);
  for(int i=0;i<5;i++){
    if(down[i]==0)fill(255);
    else fill(255,0,0);
    rect(i*100,0,100,100);
  }
}