2019年10月17日 星期四

06160805的課堂筆記

2019互動技術概論week06

注意:
size(w,h); //頁面大小
line(x,y,x,y); //線
rect(x,y,w,h); //矩形
circle(x,y,r); //圓形
ellipse(x,y,w,h); //橢圓
fill(R,G,B); //在矩形,圓形...等裡面的顏色
background(R,G,B); //頁面背景的顏色



打開processing

改字體大小:文件→偏好設定→編輯器字體大小


程式碼

執行時發出聲音
import processing.sound.*;
SoundFile player;
void setup(){
  player=new SoundFile(this,"dora.mp3");
  player.play();
}
void draw(){

}


要有聲音必須先下載聲音需要的東西


上網下載wav檔,放進程式碼

import processing.sound.*;

SoundFile player;
SoundFile wavPon;
void setup(){
  //player=new SoundFile(this,"dora.mp3");
  //player.play();
  wavPon=new SoundFile(this,"pon.wav");
}
void draw(){
  
}
void mousePressed(){ //按下滑鼠,就發出聲音
  wavPon.play();
}


上網找汽球,按滑鼠,氣球會向上飛,飛到頂就停

PImage imgBalloon;
float []balloonX=new float[200];
float []balloonY=new float[200];
float []balloonSize=new float[200];
int nowN=0;
void setup(){
  size(500,400);
  imgBalloon=loadImage("balloon.png");
}
void draw(){
  background(255);
  for(int i=0;i<nowN;i++){
    image(imgBalloon,balloonX[i],balloonY[i],balloonSize[i],balloonSize[i]/2*3);
    if(balloonY[i]>0)balloonY[i]--; //碰到頂就停
  }
}
void mousePressed(){
  balloonSize[nowN]=100;
  balloonX[nowN]=mouseX-balloonSize[nowN]/2;
  balloonY[nowN]=mouseY-balloonSize[nowN]/2*3;
  nowN++;
}


滑鼠長按,調整汽球大小,放開就往上飛

PImage imgBalloon;
float []balloonX=new float[200];
float []balloonY=new float[200];
float []balloonSize=new float[200];
int nowN=0;
void setup(){
  size(500,400);
  imgBalloon=loadImage("balloon.png");
}
void draw(){
  background(255);
  for(int i=0;i<nowN;i++){
    image(imgBalloon,balloonX[i],balloonY[i],balloonSize[i],balloonSize[i]/2*3);
    if(balloonY[i]>0)balloonY[i]--;
  }
  if(mousePressed) setBalloon(balloonSize[nowN-1]*1.04,nowN-1);
}
void setBalloon(float size ,int i){
  balloonSize[i]=size;
  balloonX[nowN]=mouseX-balloonSize[nowN]/2;
  balloonY[nowN]=mouseY-balloonSize[nowN]/2*3;
}
void mousePressed(){
  setBalloon(10,nowN); 
  nowN++;
}



增加按右鍵可將汽球消除

PImage imgBalloon;
float []balloonX=new float[200];
float []balloonY=new float[200];
float []balloonSize=new float[200];
int nowN=0;
void setup(){
  size(500,400);
  imgBalloon=loadImage("balloon.png");
}
void draw(){
  background(255);
  for(int i=0;i<nowN;i++){
    image(imgBalloon,balloonX[i],balloonY[i],balloonSize[i],balloonSize[i]/2*3);
    if(balloonY[i]>0)balloonY[i]--;
  }
  if(mousePressed) setBalloon(balloonSize[nowN-1]*1.04,nowN-1);
}
void setBalloon(float size ,int i){
  balloonSize[i]=size;
  balloonX[i]=mouseX-balloonSize[i]/2;
  balloonY[i]=mouseY-balloonSize[i]/2*3;
}
void mousePressed(){
  if(mouseButton==LEFT){
    setBalloon(10,nowN); 
    nowN++;
  }
  else if(mouseButton==RIGHT){
    for(int i=0;i<nowN;i++){
      if(balloonX[i]<mouseX 
      && mouseX<balloonX[i]+balloonSize[i] 
      && balloonY[i]<mouseY 
      && mouseY<balloonY[i]+balloonSize[i]/2*3){
        setBalloon(1,i);
      }
    }
  }
}









沒有留言:

張貼留言

alanhc 互動技術-week17 [final]

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