2012年7月4日 星期三

[Puredata] workshop day2_make a little game 2

1. 建立一個由使用者 /玩家操控的主角

  • 開啟新檔,命名為player
  • 畫一個圓來當作主角,顏色選用與ball不同





















2. 替玩家設立預設出現位置

  • 使用translateXYZ來改變玩家位置
  • 使用$來建立變數
  • 運用Message,在主控台顯示此物件各種變數代表意義
  • 設立全域變數,使用v,半徑為playerR,X為playerX,Y為playerY
  • 可建立subpatch,讓畫面較為整潔













































3. 判斷ball有無碰到player

  • 回到ball的檔案
  • 為取得是否碰撞,需得知ball的XY,利用send區域變數($0-),傳送XY數值,ball的XY值設定於translateXY的subpatch之中




4. distance
取得ball的位置後便可判別他與player之前的距離
在subpatch "translateXY"中建立subpatch "collision ",將程式寫於其中
使用 r 取得ball的XY值,取得Y的同時,同步取得player的XY值
Object,distance2d,偵測兩點距離的方式,但由於只有兩個輸入點,利用pack先將xy集合後,再輸入給distance2d






















5. 建立碰撞反應

  • r 接收ball的半徑,用t f b,把ball的半徑跟player的半徑相加





















6.  產生碰撞

  • 當距離 <= 兩圓半徑,便產生碰撞
  • 將兩者相比,如果成立,便產生聲音




























7.  利用判斷碰撞產生視覺回饋

  • 判斷碰撞後,用s score,將數值傳出
  • 到player的檔案,接收,r score
  • 使用score作為觸發,每當碰撞,便將player的半徑降低









沒有留言:

張貼留言