婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > HTML5夢幻之旅——炫麗的流星雨效果實現過程

HTML5夢幻之旅——炫麗的流星雨效果實現過程

熱門標簽:搜狗星級酒店地圖標注 江蘇高頻外呼系統線路 電銷機器人視頻 會聲會影怎樣做地圖標注效果 標準智能外呼系統 高德地圖標注錯誤怎么修改 洛陽市伊川縣地圖標注中心官網 平頂山電子地圖標注怎么修改 地圖標注自己去過的地方
徐家破鏡昏如霧。半面人間露。等閑相約是看燈。誰料人間天上、似流星。朱門簾影深深雨。憔悴新人舞。天涯海角賞新晴。惟有橋邊賣鏡、是閑行。
——宋·劉辰翁·《虞美人》

流星出現的時候,人們都喜歡對著它們許愿,因為傳說對著流星許下愿望后,愿望就能實現。不過流星很少見,至少我沒有見到過,因此從來沒有對著它許愿。最近出于興趣,制作一個拖尾效果,后來想到可以通過拖尾效果來實現一下流星雨的效果。因此今天就來實現一下,也好讓我等沒有看到過流星的童鞋長長見識。

先發幾個截圖吧:
 

測試連接:http://www.cnblogs.com/yorhom/articles/3237944.html
一,準備工作
本次開發需要用到開源引擎lufylegend.js,引擎的下載地址&詳細信息如下
引擎官方網站:
http://lufylegend.com/lufylegend
引擎API網站:
http://lufylegend.com/lufylegend/api
二,拖尾效果
實現流星雨,要用到拖尾效果,但lufylegend中沒有添加拖尾的功能,所以只有自己寫了,其實實現起來也不難,就是lufy太懶了,沒有封裝而已(愿lufy不要看到這句話啊……)。今天我就幫他老人家來實現一下這個效果。
拖尾這個效果在游戲中很常見,比如人物移動時的幻影,子彈等。因此我們把它封裝為一個Smearing類,這個類主要負責實現拖尾效果。代碼如下:

復制代碼
代碼如下:

/**
* Smearing
* @param $object 添加拖尾的對象
*/
function Smearing($object){
var self = this;
base(self,LSprite,[]);
self.x = 0;
self.y = 0;
self.mode = "";
self.smearingSprite = new LSprite();
self.addChild(self.smearingSprite);
self.object = $object;
self.originalSprite = new LSprite();
self.addChild(self.originalSprite);
self.originalSprite.addChild(self.object);
self.addEventListener(LEvent.ENTER_FRAME,self.smeared);
}

代碼清單1
接下來由我逐字逐句地解釋一番。
第一行代碼就不講解了,地球上的IT人都知道。因此從第二行開始說起。
首先我們將這個類用base繼承自LSprite,如代碼清單2(至于base和LSprite是什么,可以到API文檔里去看看,或者看看我以前的文章)。

復制代碼
代碼如下:

base(self,LSprite,[]);

代碼清單2
接下來,我們加入一個用來添加拖尾的層。如代碼清單3

復制代碼
代碼如下:

self.smearingSprite = new LSprite();
self.addChild(self.smearingSprite);

代碼清單3
然后我們保存一下添加拖尾效果的對象,這樣方便以后使用。如代碼清單4所示

復制代碼
代碼如下:

self.object = $object;

代碼清單4
然后添加放置要添加拖尾效果對象的層,并將它顯示出來。如代碼清單5

復制代碼
代碼如下:

self.originalSprite = new LSprite();
self.addChild(self.originalSprite);
self.originalSprite.addChild(self.object);

代碼清單5
最后添加一個時間軸事件,方便添加拖尾。

復制代碼
代碼如下:

self.addEventListener(LEvent.ENTER_FRAME,self.smeared);

代碼清單6
到這里,Smearing構造器就寫完了,也解釋完了,看不懂的話可能是你不了解lufylegend,里面的addChild,LSprite都是lufylegend中封裝的。
我們在上面的代碼中已經加入了時間軸事件。為什么要加入呢?因為我不妨說一下拖尾的原理。拖尾其實就是不斷地將原對象克隆出來,然后放在現在所在的位置上,相當于不斷地向畫面上蓋章。當原對象移開時,我們克隆的對象并沒有移開,而原對象移開了,如果我們增加的對象有很多,那就會形成一條鏈接原對象的線。這時我們再遍歷一下這個線里的每個成員,通過緩動來改變當前對象的透明度。然后判斷該對象的透明度是否為0,如果是就移除,避免占太多空間。因此,我們添加時間軸事件用來不斷添加拖尾對象。
Smearing成員函數smeared起到這點作用,代碼如下:

復制代碼
代碼如下:

Smearing.prototype.smeared = function(self){
var smearingChild = new SmearingChild(self.originalSprite,self.object);
self.smearingSprite.addChild(smearingChild);
for(var key in self.smearingSprite.childList){
LTweenLite.to(self.smearingSprite.childList[key],0.5,{
alpha: 0,
onComplete:function(o){
self.smearingSprite.removeChild(o);
}
});
}
};

代碼清單7
這些代碼按照我在上面所說的原理執行。可以看到我們在最后遍歷了拖尾層的成員,然后改變遍歷到的對象的透明度,并且在緩動結束后移除自身。其中的緩動類用的是lufylegend中封裝好了的LTweenLite,可以去API文檔里看看,寫得很詳細。
主要是上面兩行代碼,如代碼清單8:

復制代碼
代碼如下:

var smearingChild = new SmearingChild(self.originalSprite,self.object);
self.smearingSprite.addChild(smearingChild);

代碼清單8
可以看到又用到了一個名為SmearingChild的類,這個便是傳說中的拖尾類。這個類不容忽視,雖然代碼很少,但是很重要,里面的代碼如代碼清單9:

復制代碼
代碼如下:

/**
* SmearingChild
* @param $parent 確定拖尾位置的對象
* @param $object 要添加拖尾效果的對象
*/
function SmearingChild($parent,$object){
var self = this;
base(self,LSprite,[]);
self.addChild($object);
self.x = $parent.x;
self.y = $parent.y;
self.alpha = 0.8;
}

代碼清單9
以上的類實例化時有兩個參數,第一個用來確定這個拖尾位置的,第二個是原對象。首先來解釋一下“用來確定這個拖尾位置的”是神馬意思,其實我們對象的移動,不是讓整個Smearing對象移動,而是讓他里面的originalSprite對象移動,所以不干smearingSprite的事,為什么這樣設計呢?其實是有原因的(廢話,請忽略),原因所在就是,如果我們的拖尾的坐標設置為整個Smearing對象的坐標位置,那加到smearingSprite的對象也會跟著移動,拖尾就會錯位,從而達不到效果。所以我采取了以上的辦法:不移動本身,而是移動originalSprite。因此,我們要把originalSprite的數據傳到SmearingChild中,因此就通過$parent來獲取。
講了一通,大伙應該也明白了些。后面放出代碼,大家可以拿下去研究,或者在文章下方提出問題或者用新浪微博@Yorhom,還可以用郵箱,郵箱地址:wangyuehao1999@gmail.com。(聯系方式多多啊 (^o^))
Smearing這個類還差個功能,那就是讓對象緩緩移動,實現起來也很簡單,加入to函數:

復制代碼
代碼如下:

Smearing.prototype.to = function($duration,$vars){
var self = this;
$vars.onComplete = function(){
self.mode = "complete";
}
LTweenLite.to(self.originalSprite,$duration,$vars);
};

代碼清單10
第一個參數是移動執行的時間;第二個參數是執行緩動的數據,和LTweenLite.to方法最后一個參數是一樣的,參照API文檔即可。不過值得注意的是,為了方便操作,我們在移動結束時,將該對象的mode屬性改為“complete”。這樣做是為了讓大家根據mode屬性的值來決定是否作出其他的操作,比如移除該對象,或者往其他地方移動。
Smearing這個類封裝好了,使用起來就簡單了,如下:

復制代碼
代碼如下:

init(10,"mylegend",500,400,main);
var back;
function main(){
LStage.setDebug(true);
back = new LSprite();
back.graphics.drawRect(0,"",[0,0,50,50],true,"blue");
smearing = new Smearing(back,50);
smearing.to(2,{
x: 200,
y: 200
});
addChild(smearing);
}

代碼清單11
演示效果圖如下:
 
測試連接:http://www.cnblogs.com/yorhom/articles/3237266.html
三,炫麗的流星雨效果
有了,Smearing這個類,我們的流星雨就簡單多了。首先把所有代碼展示一下:

復制代碼
代碼如下:

init(10,"mylegend",500,400,main);
var backLayer,meteorLayer;
var back,meteor;
var maxFrame = 40,indexFrame = 0;
function main(){
LStage.setDebug(true);
//加入底板層
backLayer = new LSprite();
addChild(backLayer);
//加入流星層
meteorLayer = new LSprite();
addChild(meteorLayer);
//畫一個黑色矩形作為背景
back = new LGraphics();
back.drawRect(0,"",[0,0,LStage.width,LStage.height],true,"black");
backLayer.addChild(back);
//畫一個黃色矩形作為一顆流星
meteor = new LSprite();
meteor.graphics.drawRect(0,"",[0,0,10,10],true,"yellow");
backLayer.addEventListener(LEvent.ENTER_FRAME,onframe);
}
function onframe(){
if(indexFrame > maxFrame){
indexFrame = 0;
//為每個流星添加一個拖尾
var smearing = new Smearing(meteor,50);
smearing.x = Math.floor(Math.random() * 250);
smearing.y = 0;
smearing.to(2,{
x: Math.floor(Math.random() * (500 - 480) + 480),
y: 400
});
meteorLayer.addChild(smearing);
}
for(var key in meteorLayer.childList){
if(meteorLayer.childList[key].mode == "complete"){
meteorLayer.removeChild(meteorLayer.childList[key]);
}
}
indexFrame ++;
}

代碼清單12
每行代碼都加入了注釋,理解起來一定很簡單了。如果實在是理解不到,可能是因為你沒有了解lufylegend罷了。可以參照API文檔學習一下。
最后是代碼打包,下載地址
本篇文章就到此結束了。文章如有什么地方寫得不妥,歡迎提出。另外,如果有任何不解的地方,可以在博客下方留言,我會盡我所能幫你解決。
支持就是最大的鼓勵!
 

標簽:蚌埠 常德 鄂爾多斯 廣東 果洛 阿克蘇 廣西 松原

巨人網絡通訊聲明:本文標題《HTML5夢幻之旅——炫麗的流星雨效果實現過程》,本文關鍵詞  HTML5,夢幻,之旅,—,炫麗,的,流星雨,效果,實現,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《HTML5夢幻之旅——炫麗的流星雨效果實現過程》相關的同類信息!
  • 本頁收集關于HTML5夢幻之旅——炫麗的流星雨效果實現過程的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    日本vs亚洲vs韩国一区三区| 在线成人小视频| 亚洲视频一区二区免费在线观看 | 91麻豆精品国产91久久久久| 国产精品一区二区免费不卡 | 日本高清无吗v一区| 韩国女主播成人在线| 亚洲自拍偷拍综合| 最好看的中文字幕久久| 国产午夜精品久久| 国产欧美日韩三级| 国产欧美视频一区二区三区| 国产日韩欧美亚洲| 欧美经典三级视频一区二区三区| 久久影院视频免费| 久久免费视频色| 久久伊人蜜桃av一区二区| 欧美不卡一区二区| 精品国产a毛片| 精品国产乱码久久久久久免费| 91精品一区二区三区在线观看| 欧美另类久久久品| 日韩女优毛片在线| 欧美成人一区二区三区片免费 | 国内精品国产成人国产三级粉色| 久久精品二区亚洲w码| 久久99精品一区二区三区| 国产在线视频一区二区三区| 激情成人综合网| 国产成人精品三级| 99久久免费精品高清特色大片| 91视频国产资源| 欧美日韩在线三区| 日韩三级视频在线观看| 精品国产1区二区| 亚洲欧美综合另类在线卡通| 亚洲香蕉伊在人在线观| 日韩在线a电影| 国产一区二区三区在线观看免费视频| 激情综合色综合久久| 成人黄色在线网站| 欧美熟乱第一页| 精品精品国产高清一毛片一天堂| 国产目拍亚洲精品99久久精品| 亚洲女人的天堂| 看电影不卡的网站| 91在线免费播放| 日韩一卡二卡三卡四卡| 国产精品福利一区| 日韩精品免费专区| 成人18视频在线播放| 欧美性猛交一区二区三区精品| 欧美mv日韩mv亚洲| 亚洲免费观看在线观看| 狂野欧美性猛交blacked| 91丨porny丨蝌蚪视频| 欧美va亚洲va在线观看蝴蝶网| 亚洲三级免费观看| 美美哒免费高清在线观看视频一区二区 | 精品少妇一区二区| 亚洲欧美一区二区久久| 蜜臀91精品一区二区三区| 成人午夜私人影院| 日韩精品中文字幕在线不卡尤物 | 日韩欧美国产综合| 一区二区三区在线观看国产| 国产精品亚洲第一区在线暖暖韩国| 欧洲视频一区二区| 久久精品视频网| 青青青爽久久午夜综合久久午夜| 成人激情电影免费在线观看| 久久综合国产精品| 日本美女视频一区二区| 91免费国产在线| 大陆成人av片| 日韩电影在线一区| 精品一区二区精品| 成人动漫一区二区| 欧洲av一区二区嗯嗯嗯啊| 欧美日韩国产精品成人| 日韩女优av电影在线观看| 国产日韩欧美综合一区| 一区二区三区在线观看网站| 日韩vs国产vs欧美| 国产成人精品免费视频网站| 在线精品视频小说1| 欧美一区二区二区| 日本一区二区免费在线观看视频| 自拍偷在线精品自拍偷无码专区| 午夜精品一区二区三区电影天堂| 粉嫩嫩av羞羞动漫久久久| 成人精品高清在线| 欧美在线小视频| 欧美r级电影在线观看| 中文字幕一区二区三区在线播放| 亚洲成av人影院| 国产一区二区三区久久悠悠色av | 99久久精品情趣| 91精品国产综合久久久久| 欧美激情中文不卡| 午夜精品久久一牛影视| 成人免费毛片a| 日韩亚洲国产中文字幕欧美| 亚洲欧美自拍偷拍| 国产在线国偷精品免费看| 色综合激情久久| 久久久久久99精品| 日韩在线一二三区| 91久久一区二区| 亚洲国产精品国自产拍av| 男人的j进女人的j一区| 色系网站成人免费| 国产精品网站一区| 久久精品72免费观看| 色婷婷综合五月| 欧美激情在线一区二区三区| 麻豆久久一区二区| 欧美福利一区二区| 一区二区三区四区在线| www.激情成人| 中文字幕不卡在线观看| 久久99国产精品麻豆| 欧美老女人在线| 亚洲一线二线三线久久久| 国产不卡一区视频| 国产日韩欧美不卡在线| 久久精品国产久精国产爱| 69久久99精品久久久久婷婷| 亚洲国产综合人成综合网站| 色婷婷久久久久swag精品| 国产精品拍天天在线| 国产成人精品三级麻豆| 国产欧美精品区一区二区三区| 国产乱对白刺激视频不卡| 欧美大片国产精品| 蜜臀精品久久久久久蜜臀 | 国产乱码精品一区二区三区忘忧草| 欧美精品视频www在线观看| 亚洲国产一区视频| 欧美久久婷婷综合色| 日本午夜一本久久久综合| 欧美日本免费一区二区三区| 亚洲午夜视频在线| 7777精品伊人久久久大香线蕉的| 日韩成人伦理电影在线观看| 欧美一区二区三区视频在线观看| 亚洲va欧美va国产va天堂影院| 欧美天堂亚洲电影院在线播放| 午夜国产精品一区| 欧美一级久久久| 国产精一区二区三区| 中文av一区特黄| 色呦呦国产精品| 五月婷婷激情综合| 亚洲国产日韩精品| 777欧美精品| 国产在线精品一区二区三区不卡 | 免费看日韩a级影片| 国产亚洲欧美激情| av中文字幕不卡| 性做久久久久久| 久久久精品免费免费| 99精品久久只有精品| 偷窥国产亚洲免费视频| 26uuu精品一区二区三区四区在线| 成人免费高清视频| 亚洲高清不卡在线| 精品国产1区二区| 色婷婷一区二区| 极品少妇一区二区三区精品视频| 亚洲欧洲国产日本综合| 日韩欧美123| 欧美性生活久久| 成人夜色视频网站在线观看| 亚洲成人1区2区| 国产精品初高中害羞小美女文| 91精品国产综合久久久久久久久久 | 欧美日韩一本到| 国产精品一区二区在线播放| 一区二区成人在线视频| 26uuu国产日韩综合| 欧美色图在线观看| 成人免费毛片片v| 蜜臀久久久99精品久久久久久| 亚洲免费资源在线播放| 久久奇米777| 3d动漫精品啪啪1区2区免费| 不卡一区二区在线| 久久国产精品无码网站| 亚洲第一福利一区| 1024亚洲合集| 久久久久久电影| 久久一留热品黄| 日韩女优视频免费观看| 欧美疯狂做受xxxx富婆| 91国产成人在线| 色999日韩国产欧美一区二区| 成人福利视频网站| 成人18视频日本| 不卡的电影网站|