Re: [問題] 隨機撥放Movie上的影格

看板Flash作者 (喵)時間18年前 (2008/02/05 00:29), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串6/6 (看更多)
※ 引述《jonathanmeow (喵)》之銘言: : 再提個問題 : 上面這樣的作法可以讓影格在固定一段時間跳到隨機影格去 : 我聯想到的是擲骰子的應用 : 可是這樣子固定時間好像不夠動感 感覺就只是突然停下來 : 可不可以設計成先很快的跳動 然後慢慢的變慢下來 最後停在擲出來的點數呢? 自己回自己 年節前不看書亂搞 先看執行例 http://163.19.207.247/flash/test/dice.swf 原始檔 http://163.19.207.247/flash/test/dice.fla 這樣的做法是因為勇者鬥惡龍3代sfc複刻版中的大富翁小遊戲也是類似這樣的方式 立體的太難做 這樣做到還挺剛好的 以下說說我的看法 var fps:Number=12;//這個數字自己調整成該檔案的畫面更新速率 var stop_sec:Number=0.1;//停頓時間 本次會依狀況變動 var i:Number=0;//用來累計時間的 var m:Number=0;//用來計算變了幾次數字 var past_p:Number=0;//用來紀錄上一次的數字 var this_p:Number=0;//用來紀錄這一次的數字 避免連續兩次一樣的數字 //start_mc是開始擲骰子的元件名稱 程式會在按下它之後啟動 start_mc.onPress=function () { point_txt.text="";//重設擲出點數文字欄位的值 _root.onEnterFrame = function () { //開始計時 i++; if(i>=fps*stop_sec){ m++; //用do...while來取和上次不一樣的點數 do{ this_p=Math.floor(Math.random()*6)+1; }while(this_p==past_p); past_p=this_p; //跳到那個點數去,並重新計時 _root.a_mc.gotoAndStop(this_p); i=0; //以下是改變停止時間的判斷 //原本都是0.1秒 //等到第九次變動數字的時候 //讓第九次是0.1*(9-7)=0.2 //這樣就會跟第8次的時候的0.1秒不一樣 //每增加一次變動數字就增加停止時間 //因此就會延長時間 有慢慢變慢的感覺 if(m>=8){ stop_sec=0.1*(m-7); } //第11次是0.1*(11-7)=0.4秒 //此時設定第十二次不是0.1*(12-7)=0.5秒 而是0.8秒 //讓他有最後掙扎一下的feel if(m==12){ stop_sec=0.8; } //等到第13次 //擲骰子的程式就停止了 //讓一切回歸原本的設定 //並刪除_root.onEnterFrame等待下次呼叫 if(m==13){ stop_sec=0.1; m=0; point_txt.text="你擲的點數是"+this_p+"點!"; //上面這行是測試程式的時候用的 //如果要運用到其他程式去 //上面這行就可以改成執行該項程式 delete _root.onEnterFrame; } } } } 以上 寒冷冬夜的胡思亂想 請多指教 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.231.150.238
文章代碼(AID): #17fprOrH (Flash)
文章代碼(AID): #17fprOrH (Flash)