[問題] 如何產生聲音亂數

看板Flash作者 (悠雨蝶)時間13年前 (2010/12/13 13:54), 編輯推噓11(11021)
留言32則, 1人參與, 最新討論串1/1
不好意思,我想問幾個問題 我現在在製作類是紅白旗的遊戲,但是改成舉手腳 1.我有40個聲音檔,想用亂數取12個該怎麼寫? 2.要怎麼樣才能讓這亂數取的12個聲音檔撥放呢?只撥放一次 3.動作以及聲音要怎麼去比較是否正確 EX:聲音-右手舉起來,動作就要舉起右手,如果有舉就加分,沒有舉 就會扣一個生命。 P.S.這個星期五就要展覽了,所以我有一點點急,就只差這個部份我一直想不出來 所以想請好心人可以幫幫我,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.36.24.65

12/13 14:02, , 1F
把聲音檔變數寫入陣列,再隨機呼叫
12/13 14:02, 1F
聲音檔的變數?是我給聲音檔的名稱嗎? ※ 編輯: corinna31130 來自: 114.36.24.65 (12/13 14:26)

12/13 15:04, , 2F
恩,聲音檔的名稱
12/13 15:04, 2F
那這40個聲音檔我是要同時放在同一個影片片段裡的同一格還是分40格放呢? ※ 編輯: corinna31130 來自: 114.36.24.65 (12/13 15:10)

12/13 15:12, , 3F
痾...你是用影格放嗎,不放元件庫或外部載入?
12/13 15:12, 3F

12/13 15:13, , 4F
如果還是有問題....原始檔~
12/13 15:13, 4F
http://vspace.cc/file/JQX1A6WUBDUTEOBL.html原始檔,但是請不要跑,因為要插上 Arduino才可以跑。 ※ 編輯: corinna31130 來自: 114.36.24.65 (12/13 15:21)

12/13 15:43, , 5F
恩......這個架構我建議聲音檔放外部
12/13 15:43, 5F

12/13 15:44, , 6F
然後載入之後,把40個聲音檔存入陣列,隨機12個數字
12/13 15:44, 6F

12/13 15:45, , 7F
每一回合呼叫陣列中的那個元素進行播放,並判斷手勢
12/13 15:45, 7F
謝謝你,幫助我!!但是我不知道該怎麼寫才好,我懂你告訴我的意思 但是我不知從何下手QQ~可以給我個範例參考嗎?(我只會2.0的程式,謝謝 ※ 編輯: corinna31130 來自: 114.36.24.65 (12/13 15:49)


12/13 16:15, , 9F
CS4的版本
12/13 16:15, 9F
謝謝你,我還有個問題,就是我只要他撥放一次,還有聲音如果都ok了!!要怎麼讓 他們去判斷呢?因為他有左手右手舉起來之類的~用到兩隻手或是手腳的,這裡我卡 很久,不知道該讓他怎麼去判斷錯還是對。 ※ 編輯: corinna31130 來自: 114.36.24.65 (12/13 16:28)

12/13 16:45, , 10F
這個方法有很多種了,也許有神人可以寫出比較好的
12/13 16:45, 10F

12/13 16:47, , 11F
最基礎的方法是switch(rand),寫40種情況
12/13 16:47, 11F

12/13 16:47, , 12F
針對各種狀況去做判斷
12/13 16:47, 12F
這個我之前也有想到,但是動作只有四種所以編號只有4號,聲音卻有40號,這樣動作 編號要怎麼跟聲音編號去對照呢? ※ 編輯: corinna31130 來自: 114.36.24.65 (12/13 16:52)

12/13 16:47, , 13F
把四個手腳的舉起或放下當作布林(0 or 1)
12/13 16:47, 13F

12/13 16:48, , 14F
假設rand==1是右手舉起來,右手的變數是rh
12/13 16:48, 14F

12/13 16:49, , 15F
那麼就在撥放sounda[1]之後,判斷if(rh==1)這樣
12/13 16:49, 15F
所以說是假如右手左手舉起來的聲音檔是sounda[16]好了,在他的之後判斷if((rh==1) and(lh==1)是這樣嗎? ※ 編輯: corinna31130 來自: 114.36.24.65 (12/13 16:57)

12/13 17:02, , 16F
是的
12/13 17:02, 16F
謝謝,感謝你!!非常謝謝,我頭痛了好幾天了!!謝謝你~ ※ 編輯: corinna31130 來自: 114.36.24.65 (12/13 17:04) 痾...不好意思!!再問個小問題,就是我是把舉手物件的名稱=1嗎?因為我是按一下 按鈕就會舉,再按一下就會放,這樣是用物件的名稱去給01嗎? ※ 編輯: corinna31130 來自: 114.36.24.65 (12/13 17:12)

12/13 17:37, , 17F
妳可以直接判斷物件狀態,像是MC的影格
12/13 17:37, 17F

12/13 17:38, , 18F
也可以再點一下時順便讓變數變化就好
12/13 17:38, 18F

12/13 17:39, , 19F
點選右手多跑一行rh=!rh之類的
12/13 17:39, 19F
那個,我有點不太懂,我是用Arduino的按鈕沒有按是1按了=0,當pin2的按鈕按下去 就會舉手,當pin2按鈕再按一次,就會放手。所以等於按鈕不管按幾次都是0才會動 這樣我要怎麼給他0跟1呢? ※ 編輯: corinna31130 來自: 114.36.24.65 (12/13 17:51)

12/13 17:59, , 20F
妳扯到機械語言了wwww
12/13 17:59, 20F

12/13 18:03, , 21F
妳是jb還jnb p2 跳到某一行?
12/13 18:03, 21F

12/13 18:07, , 22F
我是不知道怎樣能讓機械和Flash弄在一起
12/13 18:07, 22F

12/13 18:08, , 23F
也許跳過去時先讓某個暫存位址修改值
12/13 18:08, 23F

12/13 18:08, , 24F
再比較他跟Flash的差異?
12/13 18:08, 24F

12/13 18:09, , 25F
因為看你的敘述,妳的pin2有作自保,讓機械持續動作
12/13 18:09, 25F
*[1;31m→ KawasumiMai:這表示你得需要另外的變數儲存手腳的結果 12/13 18:09 所以我在按下去的時候就要給他一個質rh=1嗎?那這樣就只會有個一質是右手舉沒有 右手放了!!!QQ抱歉給你這麼複雜~ ※ 編輯: corinna31130 來自: 114.36.24.65 (12/13 18:16)

12/13 18:21, , 26F
不是,遊戲一開始讓rh和lh什麼的都等於0
12/13 18:21, 26F

12/13 18:21, , 27F
按下去時執行rh=!rh(反值,0變1 1變0)
12/13 18:21, 27F

12/13 18:21, , 28F
而播放音樂則是真的判斷rh==1或rh==0
12/13 18:21, 28F

12/13 18:22, , 29F
! 是not的意思
12/13 18:22, 29F
恩恩,!我知道,所以我是要把這些rh=0這些寫在action的第一個裡面的開頭囉!! 然後再把rh=!rh,這個寫在我按鈕判斷式裡面嗎? ※ 編輯: corinna31130 來自: 114.36.24.65 (12/13 18:27)

12/13 18:28, , 30F
第一句正確,第二句應該是說寫在按鈕按下之後
12/13 18:28, 30F

12/13 18:28, , 31F
要做的事情的其中之一(函式裡面)
12/13 18:28, 31F
那就是rh=!rh是寫在我人物影片片段裡面的第一格action裡嗎?我的人物裡面有舉手跟 放手,是寫在那裏嗎? ※ 編輯: corinna31130 來自: 114.36.24.65 (12/13 18:33)

12/13 19:41, , 32F
總之每次按鈕都要執行一次rh=!rh就是,自行測試一下吧
12/13 19:41, 32F
恩恩,謝謝你!!幫我解決問題!!(飆淚~ ※ 編輯: corinna31130 來自: 114.36.24.65 (12/13 19:47)
文章代碼(AID): #1D1RKeAu (Flash)