2012年7月4日 星期三

[Puredata] workshop day2_make a little game 1

1. 開啟新檔,檔案名稱為"start"

  • 使用loadbang,讓檔案一執行便開啟視窗













2. 開啟新檔,檔案名稱為"mainboard"

  • mainboard為主要程式區,將其他程式以patch的方式呼叫到mainboard之中
  • 將步驟1建立的檔案,在mainboard中呼叫
  • PS. 以執行模式點選呼叫的程式,可以直接開啟程式內容






















3. 開啟新檔,檔案名稱為"ball"

  • 此檔案為建立圓形用



4. 讓圓形開始移動,執行模式點選reset旁的0,即可歸零位置
















5. 為了讓圓形遇到邊界可以反向,建立判別式 >4  、 <-4



6. 利用設定區域變數,讓畫面看起來更乾淨
區域變數宣告方式為" $0- " 加上變數名稱
s為send的意思,傳送值,s $0-xVector,傳送一個區域變數名稱為xVector
r,receive接收值,r $0-xVector,接受一個區域變數名稱為xVector

























7. 每個圓形的起始位置都不一樣,才會有趣

  • 使用loadbang,讓ball的程式一執行便設定隨機位置,給值到步驟四所提到的f迴圈之中
  • 設定一個變數,$1,並且把值給到circle,讓ball可以控制大小
  • 下圖中,Y_translate的r $0-xVector與 s $0-xVector有誤, 改為 r $0- yVector與 s $0-yVector

























8. 產生兩顆球,大小分別為0.3、0.1






















9. 使用subpatch讓版面更整齊

  • 下圖中,Y_translate的r $0-xVector與 s $0-xVector有誤, 改為 r $0- yVector與 s $0-yVector





























10. 設定圓形的顏色,使用阿亂怪招

















11. 運用$1的變數,改變半徑後也改變速度
建立一個subpatch,名稱為"meta",存放初始值,將步驟7的set position original放置到meta之中
$1傳送進後,使用t f f f,傳送正負值的速度跟半徑





12. 讓球碰撞到有聲音,設定一個subpatch"sound"

  • 在main中新增一個dac~
  • 使用throw~,將聲音訊號丟到main中的dac~,throw~就像是send訊息一樣,只是傳送的是音訊,一樣要設置變數,main中則是用catch~來接收
  • Message,1,0 200,從一到零,時間200毫秒,接到line,讓它呈線性變化,因此可以產生漸強漸弱的音量
  • *~後面沒放數字,預設值為零,利用line,傳送1~0的值,使之發出聲音


























13. 當球反彈,便發出聲音,因此將sound subpatch接到判斷式後面,此處使用send跟recive讓畫面更簡潔


14. 打開主控台的compute audio,就可以聽到聲音了







沒有留言:

張貼留言