鐵之狂傲

 取回密碼
 註冊
搜尋

蠻有趣的效果,用flash試做了一下,開版大可以參考看看
網址:http://savorks.com/mouseSlash/slash.html
程式碼:http://savorks.com/mouseSlash/mouseSlash.rar

思路大致如下:
先儲存滑鼠軌跡的座標
在時間軸上重複計算下列事件(設定ENTER_FRAME事件)
計算最新"一定數量的座標值"所產生的軌跡長度,若大於我們設定的值,則觸發slash事件
繪製slash效果
取座標陣列的首尾兩個點所產生的向量來和場上的物件做碰撞測試
成功的話讓該物件拿這個向量去做分割(用遮罩製作)

大概就這樣了;我想slash事件的檢定,不要用一定數量的座標值而用時間的變量來做應該也可以,效果搞不好會更好,之所以要做這個檢定主要是為了排除當滑鼠不動或者在一定的時間內,移動距離不足的情形

其實我對分割效果比較有興趣,稍微整理和改進一下應該能成為一個不錯的纇, 可以用來做一些遊戲效果...
 

回覆 使用道具 檢舉

總評分:  聲望 + 8   檢視全部評分
發條人形紅舞鞋  好厲害!  發表於 08-7-28 17:08 聲望 + 3 枚  回覆一般留言
dghylkop  效果好棒喔@V@"  發表於 08-7-27 23:37 聲望 + 5 枚  回覆一般留言

嗯嗯   會lag應該是用來做sample的那個圖形的關係吧,因為是直接向量圖形的關係,想說反正是測試用所以沒有做bitmap處理
切痕不連貫的意思是說每刀之間會有斷斷續續的對嗎?
要改善這點可以把個流程改成:
ENTER_FRAME或setInterval偵測一定時間內滑鼠軌跡的長度
若這個長度大於設定值的話
        若目前尚未觸發slash效果
                把滑鼠座標增加到slash陣列中
                然後在觸發slash效果時,設定新的ENTER_FRAME繪製slash陣列中的座標軌跡
        若已經觸發,那就將新的座標增加到slash效果的陣列中                                                                     
若長度小於設定值的話
        把slash陣列清空
        若繪製slash陣列的ENTER_FRAME事件存在的話,幹掉它

其實在我做的那個範例中,不要用mouseHistory去紀錄slash座標,而是產生一個新的沒有上限值的陣列來紀錄slash座標應該也可以實現這個效果,不過下游的繪製程序要改一下就是,而且和物件做碰撞測試時也要多下點功夫去判定了

[ 本文章最後由 savorks 於 08-7-26 23:17 編輯 ]
 

回覆 使用道具 檢舉

你需要登入後才可以回覆 登入 | 註冊

存檔|手機版|聯絡我們|新聞提供|鐵之狂傲

GMT+8, 24-11-1 06:55 , Processed in 0.017409 second(s), 18 queries , Gzip On.

回頂部