Re: 作類似跳舞機遊戲遇到的一些問題
※ 引述《keenlong (keenlong)》之銘言:
: 就是有關判斷按的準不准的問題
: 一般說來,DDR遊戲按鈕狀況會依照準度來決定按的分數,像是good,great之類的
: 因為在下對onclipevent還不是很了解,所以想問看看這樣不知可不可行
: onclipevent(enterframe){
: if(key.isdown(key.up)
: if(判斷掉下來的箭頭是否有碰到反應區)
: if(該箭頭的_y介於100~200,不包含130~160)
: 顯示good
: if(該箭頭的_y介於130~160)
: 顯示great
: else
: 顯示bad
: }
: 不過做了一下發現似乎不太可行........想問問看這樣寫是否有很明顯的錯誤???
: (大小寫除外)
: 還有箭頭的掉落在下是用手動XD,為了配合一下節奏,這有辦法用複製movieclip來做嗎???
: 懇請解惑 謝謝
: 一直上來問問題,抱歉>"<
以前作過 下面的方法給你參考看看
依照你的方式 將來在複製箭頭的時候會碰到很多問題
諸如時間的搭配或是判斷'個別箭頭'(也就是如果同一個箭頭在場景出現兩次時)
會造成錯誤
假設主場景有兩個影格,兩個圖層
參考範例檔http://web.cc.ntnu.edu.tw/~48970308/ddrteach.fla 先存檔再開啟
Layer1的圖層上,有a,b兩個instance,a是將被複製的影片,b是用來作為參考座標的mc
而這個圖層第一與第二影格都是相同的。
Layer2(AS)的圖層的第一個影格,其as如下
duplicateMovieClip("a","a"+1,11); //複製影片a,命名為a1,深度為11
setProperty("a"+1,_y,600-n); //設定a1的y為600-n
if(getProperty("a"+1,_y)<=-50){ //如果a1的y小於-50
removeMovieClip("a"+1); //a1被拿掉
}
Layer2(AS)的圖層其第二個影格,其as如下
n=n+10; //變數控制而已
gotoAndPlay(1); //迴圈
Layer2(AS)的圖層,第一個影格中還放了一個隱藏按鈕,命名為hidenutton
其as如下
on (keyPress "<Up>") { //在按下up的時候
if(Math.abs(getProperty("a"+1,_y)-b._y)<=50){ //如果a1與b的y方向距離<=50
trace("yes"); //輸出"yes"
}else { //否則
trace("no"); //輸出'no'
}
}
當然,你也可以只用一個影格來作這些東西,不過我個人是比較喜歡分開來作
因為有時候當影格as過多時,對於非專業的程式設計者來講是很痛苦的一件事情。
千萬不要笨笨的跟我上面的範例一樣ㄟ...要能自己更改變數或增加變數的應用
例如上述的n(箭頭上移速度),可以活用,例如不同的關卡有不同的速度之類的。
若要將聲音考慮進去,在聲音的控制方面,有一個可以取得聲音播放的位置
語法為snd.position
利用這個語法取得聲音位置,設定一變數跟其有關聯,而這變數就可以用來控制
任何你想要控制的(如箭頭的出現,或精采時候速度變快等等)
當然 這些東西不是一天兩天可以做出來的,要做到這樣的程度
必須要有一番功夫
以上 希望你看得懂...你應該自己會找到如何判斷'great""good"等ddr特效
推
推 61.225.76.80 12/12, , 1F
推 61.225.76.80 12/12, 1F
※ 編輯: harry901 來自: 218.167.250.224 (12/13 07:47)
Flash 近期熱門文章
PTT數位生活區 即時熱門文章