Friday, January 2, 2015

Processing กับเสียง ตอนที่ 3 เสียง Background กับ Event

ได้เวลายำสองตอนก่อนหน้านี้เข้าด้วยกันแล้วครับ เราจะลองสร้างโปรแกรมง่ายๆ โดยให้เมื่อรันโปรแกรมก็จะเล่นเสียงเพลงเป็น Background music และมีวงกลมสีแดงเกิดขึ้น เมื่อเคลื่อนเมาส์ไปแถวๆวงกลม สีจะเปลี่ยนเป็นสีเหลือง และเล่น Event sound ขึ้นมาหนึ่งครั้ง



สมมติว่ามีไฟล์เสียงสองไฟล์ เก็บไว้ใน data folder ของโปรเจคแล้วตามนี้
1. Background music คือ POL-icy-town-short.wav
2. Event sound คือ coin.wav

โค้ดก็จะประมาณนี้ครับ
import ddf.minim.*;

Minim minim;
AudioSample coin;
AudioPlayer player;
int flag=0;
color cl = #FF0000;

void setup()
{
  size(200, 200);
  minim = new Minim(this);
  player = minim.loadFile("POL-icy-town-short.wav");
  player.loop();
  coin = minim.loadSample("coin.wav", 512);
}

void draw()
{
  background(0);  
  fill(cl);
  ellipse(100,100,50,50);
  if(flag==0){
    if(mouseX>=80 && mouseX<=120){
      if(mouseY>=80 && mouseY<=120){
        coin.trigger();
        flag=1;
        cl=#FFFF00;
      }
    }
  }
}

สังเกตว่า การเล่นเสียงทั้งสองเสียงถูกแยกเป็น thread ต่างหากกันครับ สามารถเล่นได้พร้อมๆกันได้เลย

No comments:

Post a Comment