下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、用html5制作烟火效果的教原理很容易。就写一个烟火类以及碎屑类,实例化后让它飞起来,然后到达某个点后,把这个烟火对象的dead属性置为true,然后再实例化出一定数量的碎屑对象,并且给与碎屑对象随机一个要到达的目标点,然后让全部碎屑对象飞过去就行了。【烟火】xml/html code复制内容到剪贴板varboom=function(x,r,c,boomarea,shape)/烟火对象this.booms=?;this.x=?x;this.y=?(canvas.height+r);this.r=?r;this.c=?c;this.shape=?shape?|?false;this.boomar
2、ea=?boomarea;this.theta=0;this.dead=false;this.ba=parseint(getrandom(80?,?200);btotype=?_paint:function()ctx.save();ctx.beginpath();ctx.arc(this.x,this.y,this.r,0,2*math.pi);ctx.fillstyle=this.c;ctx.fill();ctx.restore();,_move:function()vardx=this.boomarea.x?-?this.x?,dy=this.boomarea.y?-?thi
3、s.y;thisthis.x=?this.x+dx*0.01;thisthis.y=?this.y+dy*0.01;if(math.abs(dx)=51?:?2;var?color;if(style=1)color=?a:parseint(getrandom(128,255),b:parseint(getrandom(128,255),c:parseint(getrandom(128,255)varfanwei=parseint(getrandom(300,?400);for(vari=0;iif(style=2)color=?a:parseint(getrandom(128,255),b:p
4、arseint(getrandom(128,255),c:parseint(getrandom(128,255)vara=getrandom(-math.pi,?math.pi);varx=getrandom(0,?fanwei)?*?math.cos(a)?+?this.x;vary=getrandom(0,?fanwei)?*?math.sin(a)?+?this.y;varradius=getrandom(0?,?2)varfrag=newfrag(this.x?,?this.y?,?radius?,?color?,?x?,?y?);this.booms.push(frag);,_sha
5、pboom:function()/有外形的爆炸varthat=this;putvalue(ocas?,?octx?,?this.shape?,?5,?function(dots)vardx=canvas.width/2-that.x;vardy=canvas.height/2-that.y;for(vari=0;icolor=?a:dotsi.a,b:dotsi.b,c:dotsi.cvarx=dotsi.x;vary=dotsi.y;varradius=1;varfrag=newfrag(that.x?,?that.y?,?radius?,?color?,?x-dx?,?y-dy);that
6、.booms.push(frag);)【碎屑】xml/html code复制内容到剪贴板varfrag=function(centerx?,?centery?,?radius?,?color?,tx?,?ty)?/烟火碎屑对象this.tx=?tx;this.ty=?ty;this.x=centerx;this.y=centery;this.dead=false;this.centerx=?centerx;this.centery=?centery;this.radius=?radius;this.color=?color;ftotype=?paint:function()ctx
7、.save();ctx.beginpath();ctx.arc(this.x?,?this.y?,?this.radius?,?0?,?2*math.pi);ctx.fillstyle="rgba("+this.color.a+","+this.color.b+","+this.color.c+",1)"ctx.fill()ctx.restore();,moveto:function(index)thisthis.ty=?this.ty+0.3;var
8、dx=this.tx?-?this.x?,dy=this.ty?-?this.y;this.x=math.abs(dx)<0.1this.tx?:?(this.x+dx*0.1);this.y=math.abs(dy)<0.1this.ty?:?(this.y+dy*0.1);if(dx=0?&&?math.abs(dy)<=80)this.dead=true;this.paint();让碎屑产生虚影也很容易,就是每次刷新画布时,不是擦掉重绘,而是绘制透亮度为0.1(假如想虚影更长,可以把这个值弄的更小)的背景色彩。然后虚影就可以做出来了。也就
9、是:xml/html code复制内容到剪贴板ctx.save();ctx.fillstyle="rgba(0,5,24,0.1)"ctx.fillrect(0,0,canvas.width,canvas.height);ctx.restore();让烟火形成自己想要的外形,比如字体,之类的,也很容易,就是可以通过离屏canvas以及canvas的getimagedata这个办法就可以做出来。离屏canvas,顾名思义就是离开屏幕的,也就是不行见的canvas,挺直在js里面用document.createelement("canvas")就可以生成一个canvas dom对象了,只要不把这个dom对象赋给body,这个canvas对象就相当于一个离屏对象了,我们就可以猎取到这个离屏canvas的context对象,然后再用户看不到的地方做任何我们想做的事情了。让烟火形成自己想要的外形就是先把文字或者画在离屏canv
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026山东泰安市宁阳县兵役登记方法和要求参考考试试题及答案解析
- 2026中国中医科学院中医药数据中心招聘国内高校应届毕业生(京外生源)2人(提前批)备考考试题库及答案解析
- 2025福建省闽西南水资源开发有限责任公司招聘5人参考考试题库及答案解析
- 2025福建省闽西南水资源开发有限责任公司招聘5人备考考试试题及答案解析
- 2026春季广东广州市天河区同仁艺体实验小学教师招聘6人参考笔试题库附答案解析
- 2025年山西省长治市人民医院公开招聘硕士以上专业技术工作人员参考考试题库及答案解析
- 2026年江苏省卫生健康委员会所属事业单位公开招聘工作人员807人备考笔试试题及答案解析
- 2025安徽星瑞齿轮传动有限公司社会招聘2人备考考试试题及答案解析
- 2025四川达州市中心医院招收重症护理进修学员考试备考题库及答案解析
- 2025西安高新区第九初级中学招聘教师模拟笔试试题及答案解析
- 学堂在线 雨课堂 学堂云 海权与制海权 结业考试答案
- 2023年运动康复期末复习-体适能理论与训练(运动康复专业)考试上岸题库历年考点含答案
- 普通机床主传动系统的设计课程设计说明书
- 班组工程进度款申请表
- 四年级阅读训练概括文章主要内容(完美)
- JJG 1033-2007电磁流量计
- GB/T 6541-1986石油产品油对水界面张力测定法(圆环法)
- GB/T 629-1997化学试剂氢氧化钠
- GB/T 37234-2018文件鉴定通用规范
- GB/T 2895-2008塑料聚酯树脂部分酸值和总酸值的测定
- 水利工程监理规划78648
评论
0/150
提交评论