Re: [問題] 隨機撥放Movie上的影格
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 6 之 6 篇):
Flash 近期熱門文章
PTT數位生活區 即時熱門文章