HTML5开发实例-ThreeJs实现粒子动画飘花效果代码分享


本文摘自PHP中文网,作者黄舟,侵删。

粒子动画在ThreeJs可以用几种方式实现
本次样例使用Sprite类来构建粒子

1

2

3

4

5

6

7

官方对Sprite类的解释

Sprite

A sprite is a plane that always faces towards the camera, generally with a partially transparent texture applied.

 

Sprites do not cast shadows, setting

castShadow = true

will have no effect.

大概意思:这个类创建的对象是一个始终面向相机的平面,可以把贴图应用在上面,Sprite对象无法添加阴影 ,所以castShadow属性无效
首先我们创建场景和相机

1

2

3

4

5

container = document.createElement( 'p' );

document.body.appendChild( container );

camera = new THREE.PerspectiveCamera( 60, window.innerWidth / window.innerHeight, 1, 10000 );

camera.position.set( 0, 0, 120 );

scene = new THREE.Scene();

然后用Sprite创建粒子

1

var textureList=[pic1,pic2,pic3,pic4,pic5,pic6,pic7,pic8,pic9,pic10]

1

2

3

4

var textureLoader = new THREE.TextureLoader();

var textureId = parseInt(Math.random()*100)%10

var texture = textureLoader.load(textureList[textureId]);

var particle = new THREE.Sprite( new THREE.SpriteMaterial( { map: texture } ) );

生成随机数,随机获取贴图资源,使用Sprite类创建粒子

1

2

3

4

particle.position.x = Math.round(Math.random() *winHeight* 1000)%200 +120;

particle.position.y =Math.round(Math.random() *winHeight* 10000)%100 +60;

particle.position.z = Math.random() * 3 - 30;

particle.scale.x = particle.scale.y = Math.round(Math.random() * 50)%5+10 ;

使用随机数给粒子设置位置,大小
因为Sprite类是创建一个始终面向相机的面,也就是说它无法使用翻转使得花瓣有个翻转的效果。

阅读剩余部分

相关阅读 >>

使用HTML5的5大原因是什么

HTML5表单相关元素和属性

具体解析HTML5文件读取filereader及文件读取模块的封装

通过HTML5中的canvas来绘制一个圆环形进度条

HTML5 filereader接口的详细介绍

关于h5中背景音乐的自动播放效果的实现

element-ui对话框可拖拽的功能如何实现?(附代码)

有关HTML5服务器推送事件的讲解

HTML5学习笔记(一)-认识HTML5

HTML5 canvas学习的实例介绍

更多相关阅读请进入《HTML5》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...

    暂无评论...