分享
查看: 1640|回复: 1

[FAQ] ThingJS在线开发中怎么设置多种天气呢?

[复制链接]

ThingJS在线开发中怎么设置多种天气呢?

发表于 2022-8-2 17:02:50 来自 FAQ 阅读模式 倒序浏览
zzv_icon1640 zzr_icon1 查看全部
ThingJS在线开发中怎么设置多种天气呢?
avatar

4

主题

893

帖子

2480

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2480
大侠. 发表于 2022-8-10 16:29:29 显示全部楼层
可以参考ThingJS在线开发中的官方例程“物体 - 创建粒子”,其中演示了多种天气情况的粒子效果和创建、清除方法。

  1. /**
  2. * 通过创建粒子实现火焰效果
  3. */
  4. function createFire() {
  5.     resetAll();
  6.     // 创建粒子
  7.     var particle = app.create({
  8.         id: 'fire01',
  9.         type: 'ParticleSystem',
  10.         name: 'Fire',
  11.         parent: app.query('car01')[0],
  12.         url: 'https://model.3dmomoda.com/models/19061018snbajhvuzrheq9sbgwdoefuk/0/particles',
  13.         localPosition: [0, 0, 0] // 设置粒子相对于父物体的位置
  14.     });
  15. }

  16. /**
  17. * 通过创建粒子实现飘雪效果
  18. */
  19. function createSnow() {
  20.     resetAll();
  21.     // 创建降雪效果
  22.     var particleSnow = app.create({
  23.         type: 'ParticleSystem',
  24.         id: 'No1234567',
  25.         name: 'Snow',
  26.         url: 'https://model.3dmomoda.com/models/18112014q3t8aunaabahzxbxcochavap/0/particles',
  27.         position: [0, 50, 0]
  28.     });
  29. }

  30. /**
  31. * 通过创建粒子实现喷水效果
  32. */
  33. function createWater() {
  34.     resetAll();
  35.     // 创建喷水效果
  36.     var particle = app.create({
  37.         id: 'water01',
  38.         type: 'ParticleSystem',
  39.         name: 'Water',
  40.         url: 'https://model.3dmomoda.com/models/19081611ewlkh7xqy71uzixefob8uq1x/0/particles',
  41.         position: [0, 0, 5]
  42.     });
  43. }

  44. /**
  45. * 通过创建粒子实现降雨效果
  46. */
  47. function createByParticle() {
  48.     resetAll();
  49.     // 创建粒子
  50.     var particle = app.create({
  51.         type: 'ParticleSystem',
  52.         name: 'Rain',
  53.         url: 'https://model.3dmomoda.com/models/18112113d4jcj4xcoyxecxehf3zodmvp/0/particles',
  54.         position: [0, 300, 0],
  55.         complete: function (ev) {
  56.             ev.object.scale = [10, 10, 10];
  57.         }
  58.     });
  59.     // 设置粒子最大密度
  60.     particle.setGroupAttribute('maxParticleCount', 1000);
  61.     // 设置粒子最小密度
  62.     particle.setParticleAttribute('particleCount', 500);

  63. }


  64. /**
  65. * 清除降雨效果
  66. */
  67. function resetAll() {
  68.     // 获取当前已创建的粒子
  69.     var particle = app.query('.ParticleSystem');
  70.     // 判断当前有无创建的粒子
  71.     if (particle) {
  72.         // 存在,将已创建的粒子删除
  73.         particle.destroy();
  74.     }
  75. }
复制代码
avatar
游客~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

130700ppkpl8x3t7tt1b1t